我有一个 XML 布局,其中包含一个具有未知数量的 TableRows 的 TableLayout...
行数将在运行时建立,但我所知道的是我想要两列......
所以我对此有几个问题:
- is there a way to set the whole TableLayout to have 2 columns ?
- 有没有一种方法以编程方式为(在运行时)创建的 TableRows 提供一个 id,该 ID 将放置在 TableLayout 中,以便我稍后可以从软件的其他部分引用它们?
您可以通过 XML 部件和 LayoutInflater 构建表行。假设您将其作为 table_cell.xml:
<TextView android:id="@+id/text"
android:text="woot" />
这就是你的 table_row.xml (除非你对 TableRow 做了一些奇特的事情,否则你可能不需要将它放入它自己的 XML 文件中,而只需以编程方式创建它。结果将是相同的):
<TableRow />
假设您的 TableLayout 引用称为“table”,您可以执行以下操作:
TableLayout table = (TableLayout)findViewById(R.id.table);
LayoutInflater inflater = getLayoutInflater();
for(int i = 0; i < 5; i++) {
TableRow row = (TableRow)inflater.inflate(R.layout.table_row, table, false);
View v = (View)inflater.inflate(R.layout.table_cell, row, false);
row.addView(v);
v = (View)inflater.inflate(R.layout.table_cell, row, false);
row.addView(v);
// you can store your reference to `row` here for later use
table.addView(row);
}
使用这种技术,您仍然可以在 XML 中设置布局,从而更容易阅读/组织/编辑,并且您仍然可以通过编程控制表中的列数和行数。您还可以存储对每个表行的引用以供以后使用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)