TableRow 跨度不适用于动态添加的行

2023-11-28

我在将行动态添加到滚动视图内的 TableLayout 时遇到以下问题。这些行遵循以下模式:

第 1 行:单元格横跨整个表格
第 2 行:两个单元格
第 3 行:单元格横跨整个表格
...
N 行:两个单元格

问题在于,具有一个单元格跨越该行的行实际上根本不跨越。它到达屏幕中间的某个点并在高度处环绕。

Here is a screenshot of the problem under Android 2.3.3: Span layout problem

请注意,下面的示例过于简单(但跨越仍然不起作用)。他们已准备好尝试 - 只需创建文件即可。我进行了调试,布局参数似乎在某种程度上消失了。此外,如果 TableLayout 被硬编码在 main.xml 文件中,那么就没有问题。不幸的是,我需要动态生成视图。

测试项目.java

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.*;

public class TestProject extends Activity {
        /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main);
                TableLayout table = new TableLayout(this);
                ScrollView contentHolder = (ScrollView) findViewById(R.id.scrollView1);
                contentHolder.addView(table, new TableLayout.LayoutParams(
                        TableLayout.LayoutParams.FILL_PARENT, TableLayout.LayoutParams.WRAP_CONTENT));
                TableRow row1 = (TableRow) View.inflate(this, R.layout.table_span_row, null);
                TableRow.LayoutParams rowSpanLayout = new TableRow.LayoutParams(
                        TableRow.LayoutParams.FILL_PARENT, TableRow.LayoutParams.WRAP_CONTENT);
                rowSpanLayout.span = 2;
                table.addView(row1, rowSpanLayout);
                TableRow row2 = (TableRow) View.inflate(this, R.layout.table_row_columns, null);
                table.addView(row2);
                    }
    }

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent">

<ScrollView android:id="@+id/scrollView1" android:layout_height="fill_parent"
    android:layout_width="fill_parent">
</ScrollView>
</LinearLayout>

表_行_列.xml

<?xml version="1.0" encoding="utf-8"?>
<TableRow xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent" android:layout_height="wrap_content">
    <TextView android:layout_height="wrap_content" android:text="This is column one" android:layout_weight="1" android:layout_width="fill_parent"></TextView>
    <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Column 2"></TextView>
</TableRow>

表_span_row.xml

<?xml version="1.0" encoding="utf-8"?>
<TableRow xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_height="wrap_content" android:layout_width="fill_parent">
    <LinearLayout android:layout_height="wrap_content" android:layout_width="fill_parent" android:layout_span="2" android:background="#FF333333">
        <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="This should span on the whole row"></TextView>
        <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="... but it does not do so"></TextView>
    </LinearLayout>
</TableRow>

我尝试过 requestLayout 和 invalidate 但无济于事。

附:我也欢迎有关如何动态替换 ScrollView 中的视图的建议


好的,我找到了解决方案。只需删除我想要跨表的行的 TableRow 标记即可。

表_span_row.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="wrap_content" android:layout_width="fill_parent"
    android:background="#FF333333">
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content"
    android:layout_weight="1" android:text="This should span on the whole row" />
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content"
    android:text="... and now it does" />
</LinearLayout>

我不知道如果我有 3 列并且想要跨越其中两列上的一个单元格,会发生什么:)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TableRow 跨度不适用于动态添加的行 的相关文章

  • 如何使用 ProGuard 将所有方法保留在类中

    我使用 ProGuard 来优化我的 Android 应用程序 然而 对于 Android 仪器测试 我需要一些 但不是全部 类来保留所有成员 我尝试了各种方法 最后一个是 keepclassmembers public class com
  • “_加载小部件时出现问题”消息

    加载小部件时 如果找不到资源或其他内容 则会显示 加载小部件时出现问题 就这样 惊人的 此消息保留在主屏幕上 甚至没有说明加载时遇到问题的小部件 我通过反复试验弄清楚了这一点 但我想知道发生这种情况时是否有任何地方可以找到错误消息 Andr
  • Android 上有哪些字体可用? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我知道安卓有一个字体集合 http www ascenderfonts com store search
  • 如何在 Android 中使用 Assets 中预加载的 SQLite 数据库

    我想用preloaded database在我的应用程序中意味着尝试在安装 apk 时获取数据库 以便可以使用已保存在其中的数据 我复制了 成分 db 文件位于资产文件夹中 并使用以下代码 但这会出现错误 从资源文件复制数据库时出现问题 我
  • 将正确的上下文传递给 greendao 的 OpenHelper 构造函数

    如果我理解正确的话 在使用数据库时 我必须执行以下操作 DaoMaster OpenHelper helper new DaoMaster OpenHelper this test db null Override public void
  • Android 应用被 Google Play 拒绝

    我最近向 Google Play 商店提交了一个 Android 应用程序 但收到一条消息说我的应用程序已被拒绝 我不确定问题是什么 也找不到确切的解决方案 拒绝原因 违反了禁止行为条款 内容政策 经过定期审核后 我们确定您的应用程序支持
  • Firestore - RecycleView - 图像持有者

    我不知道如何编写图像的支架 我已经设置了 2 个文本 但我不知道图像的支架应该是什么样子 你能帮我告诉我图像的文字应该是什么样子才能正确显示吗 holder artistImage setImageResource model getArt
  • 如何在android中设置多个闹钟,在这种情况下最后一个闹钟会覆盖以前的闹钟

    我正在开发一个Android应用程序 用户可以在其中设置提醒时间 但我在以下代码中遇到一个问题 即最后一个警报会覆盖之前的所有警报 MainActivity java public void setreminders DatabaseHan
  • 如何强制从本机代码打开 Android 软键盘?

    我有一个游戏 当用户触摸屏幕时 它使用从 C 到 Java 的回调来强制打开软键盘 Java代码很简单是这样的 this inputMethodManager toggleSoftInput InputMethodManager SHOW
  • 如何将 android.net.Uri 转换为 java.net.URL? [复制]

    这个问题在这里已经有答案了 有没有办法从Uri to URL 我正在使用的库需要这个 它only接受一个URL但我需要在我的设备上使用图像 如果该方案的Uri is http or https new URL uri toString 应该
  • finish() 完成活动但它仍然在后台

    我有一个关于 android studio 中活动的 finish 方法的问题 我有这个简单的代码 public class MainActivity extends AppCompatActivity Override protected
  • Firebase ANR - 甚至不使用 firebase

    随着 GMS 的最新更新 引入了新的 ANR 如果您退出应用程序 然后返回 则 ANR 就会初始化 线程跟踪似乎指向 Firebase 但我什至从未开始使用 Firebase 我猜它一定是新的 GMS 包的一部分 06 11 00 34 0
  • 在 Jetpack Compose 中跨可组合函数重复使用一组预览注释

    在 Jetpack Compose 中迈出第一步 这非常令人惊奇 除了一个恼人的问题 我有一组固定的预览 正常 深色和 RTL Preview name Normal group Screen showBackground true Pre
  • 如何以编程方式启动 ssh 服务器 android,以及如何获取连接到设备的用户名和密码

    我正在开发像这样的应用程序sshdroid 我想在 Android 操作系统上打开 ssh 连接 并且我想从电脑连接应用程序 我使用了 JSCH lib 但是这个lib用于将android连接到pc 我的要求是pc到android 任何人都
  • 在Android Studio中更改项目主题?

    我使用浅色主题创建了一些项目 现在我想将其更改为深色 但我不知道该怎么做 顺便说一句 我不是问如何在代码中做到这一点 只是问如何更改项目的默认主题 在 AndroidManifest xml 的 application 标签下 您可以设置您
  • onBackPressed 隐藏 不破坏 Activity

    我知道如何取消后退按键 以便活动 主窗口保持可见 public void onBackPressed return 我的目标是隐藏该活动 但是 在没有完成它的情况下 您如何在 onBackPressed 事件中做到这一点 即我想达到 onP
  • 将图像添加到自定义 AlertDialog

    我制作了一个 AlertDialog 让用户可以从我显示的 4 个选项中选择一个 前 3 个让他们在单击号码时直接拨打号码 第 4 个显示不同的视图 现在看起来是这样的 由于第四个选项的目的是不同的任务 我想让它看起来不同 因为用户可能会感
  • 无法将类型“System.IO.Stream”隐式转换为“Java.IO.InputStream”

    我提到了一些类似的问题 但没有一个涉及IO 当我使用时 我在java中使用了相同的代码Eclipse 那次就成功了 但现在我尝试在中使用这段代码Mono for Android C 它不起作用 我正在尝试运行此代码来创建一个InputStr
  • 在没有 Wifi 的情况下获取 Android 设备的 MAC 地址

    如何获取没有 Wifi 接口的 Android 设备 例如 Android 模拟器 的网络接口的 MAC 地址 通过WifiManager返回获取的WifiInfonull EDIT 更清楚地说 我必须与本地网络上的现有网络协议 不是我设计
  • Android ScrollView fillViewport 不工作

    我有一个简单的布局 名称位于顶部 按钮位于屏幕底部 或者超出该按钮 以防我添加更多项目 所以我使用带有 LinearLayout 的 ScrollView 如下所示

随机推荐

  • Windows 如何创建目录符号链接

    我正在尝试创建指向 Windows 8 1 目录的符号链接 使用 git bash 命令窗口以管理员身份运行 具有如下文件夹结构 magento plugin magento 我的插件是一个 git 存储库 我想将其符号链接到 magent
  • 列出Oracle中给定用户的所有表

    我是 Oracle 新手 想要查找用户 john 创建的所有表 我通过命令行连接到 Oracle 数据库 命令如下 sqlplus john passwd 如何列出给定用户创建的所有表 例如约翰 这将获取 JOHN 用户是所有者的所有表 S
  • Platform::String 真的那么没用吗?

    我正在尝试在 Windows Store 又名 Metro Style 应用程序中用 C CX 编写几行代码 我惊讶地发现平台 字符串缺少许多基本的字符串操作 例如 代替 or 指数 我想我可以使用内部数据 将其传递给 std string
  • 将 Access DB 表加载到数据表

    我有一个 ACCDB 格式的数据库 其中包含一些表 我使用以下代码成功将其加载到 OleDbDataReader 中 string connectionString Provider Microsoft ACE OLEDB 12 0 dat
  • Eclipse 插件的延迟激活

    我想知道 Eclipse 清单编辑器中的 加载其类之一时激活此插件 复选框有何用处 我认为 Eclipse 总是使用 延迟初始化 方法 这个选项与插件的 BundleActivator 类有关系吗 初始化与激活有什么不同吗 Here是一个类
  • 我可以在配备英特尔高清显卡的笔记本电脑上实现深度学习模型吗

    我目前正在为我的硕士学位做一个关于深度学习的项目 我想安装 keras 库 所以当我开始安装 Theano 和 tensorflow 时 我发现我必须安装 CUDA 但我的笔记本电脑配备了英特尔高清显卡 所以我的问题是 如果我安装它们 它会
  • Nuxt.js - 在所有网址末尾强制添加斜杠

    我正在寻找一种方法来确保我的所有网址都以尾随斜杠结尾 因此首先检查末尾是否已经有尾随斜杠 如果没有则添加一个 我尝试过nuxt 重定向模块 它可以添加斜杠 但随后会导致无限重定向 redirect from to from req gt l
  • Internet Explorer、Json.Net JavaScript 日期和毫秒问题

    我不确定是否是我遗漏了某些东西 或者 IE 或 Json Net 但基本上这是有效的 new Date 2012 08 03T12 36 54 743Z 此操作失败并出现 无效日期 错误 new Date 2012 08 03T12 36
  • Xcode - 警告:函数的隐式声明在 C99 中无效

    收到警告 函数 Fibonacci 的隐式声明在 C99 中无效 怎么了 include
  • 在 Windows Azure 上运行 Fleck(或任何)Websocket 服务器

    我想在 Azure 中以辅助角色运行 WebSocket 服务器 这在模拟器本地工作得很好 但是第一次运行套接字服务器时会出现 Windows 防火墙提示 我想知道是否有人知道如何克服 Azure 上套接字的连接问题 我的套接字服务器实现
  • 从嵌套文件夹导入模块[重复]

    这个问题在这里已经有答案了 我有这样的文件夹结构 main folder done test1 init py check py init py class Tries object def init self print Test 检查
  • 如何在 iframe 中查找 div

    我正在尝试使用 jquery 在 iframe 中查找 div 有没有比我下面使用的方法更好的方法 Iframe contents find MyDiv function atmslidein customer ready function
  • Flex 的 FXG 编辑器

    我见过的唯一适用于 Flex 的 FXG 编辑器是由 7jigen 制作 在线工作或 作为 Flex 应用程序 有人知道另一种吗 我认为它可以在 Illustrator 中完成 但这并没有真正提供简单的导出到 Flex 类型选项 只是给出坐
  • 使用方法引用进行混淆后,会出现 NoSuchMethodError 崩溃

    编译 proguard之前的源代码 public class IntentSession extends BaseIntentSession Override public void onResume super onResume mExe
  • 如何检索模块的路径?

    我想检测模块是否已更改 现在 使用 inotify 很简单 您只需要知道要从中获取通知的目录即可 如何在 python 中检索模块的路径 import a module print a module file 实际上会给你加载的 pyc 文
  • Delphi TPath.GetTempPath 结果被裁剪

    我正在使用 Delphi 2010 我的程序想要获取系统的临时路径 我正在使用 TPath GetTempPath 并且一切正常 至少对于我和我的同事来说 但在某些客户计算机上 此方法返回 当然 不存在的裁剪路径 我发现问题似乎是对 Get
  • 我可以在 Google App Engine(标准环境)中使用 Goroutines 吗?

    下面的例子似乎可行 但是使用安全吗 我的目标是进行一些非常轻的后台处理 而实际的任务队列作业感觉太繁重 func MyHandler w http ResponseWriter r http Request go func do somet
  • REST 复杂/复合/嵌套资源 [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我正在尝试解决基于 REST 的 API 中的概念的最佳方法 不包含其他资源的扁平资源没有问题 我遇到麻烦的是复杂的资源 例如 我有一本漫画书的资源 ComicBook上面有各种
  • 不平衡数据和加权交叉熵

    我正在尝试使用不平衡数据训练网络 我有 A 198 个样本 B 436 个样本 C 710 个样本 D 272 个样本 我已经阅读了有关 weighted cross entropy with logits 的内容 但我找到的所有示例都是用
  • TableRow 跨度不适用于动态添加的行

    我在将行动态添加到滚动视图内的 TableLayout 时遇到以下问题 这些行遵循以下模式 第 1 行 单元格横跨整个表格第 2 行 两个单元格第 3 行 单元格横跨整个表格 N 行 两个单元格 问题在于 具有一个单元格跨越该行的行实际上根