我有一个 XML 布局,其中包含一个 TableLayout 和未知数量的 TableRows... 行数将在运行时确定,但我所知道的是我想要两列...... 所以我对此有几个问题:
- - 有没有办法将整个 TableLayout 设置为有 2 列?
- 有没有一种方法可以通过编程方式为(在运行时)创建的 TableRows 提供一个 id,这些 TableRows 将被放置在 TableLayout 中,以便我以后可以从软件的其他部分引用它们?
最佳答案
您可以通过 XML 部件和 LayoutInflater 构建表格行。假设您将此作为 table_cell.xml:
<TextView android:id="@+id/text"
android:text="woot" />
这是你的 table_row.xml(除非你对你的 TableRow 做了一些花哨的事情,你可能不需要把它放在它自己的 XML 文件中,而是以编程方式创建它。结果是一样的):
<TableRow />
假设您的 TableLayout 引用被称为“表格”,您可以这样做:
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 中设置布局,使其更易于阅读/组织/编辑,并且您仍然可以通过编程控制表格中的列数和行数。您还可以存储对每个表格行的引用以备后用。
关于android - 在 TableLayout 中以编程方式设置列数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2729992/