android - 在 TableLayout 中以编程方式设置列数

标签 android tablelayout

我有一个 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/

相关文章:

Android Textview 改变行间距/填充

java - TableLayout 中 TextView 和表行的布局 - Android

android - 在 Android 中创建元素周期表

java - 将 TableLayout 放入 ScrollView 中?

android - 如何在Android中运行Sample camera程序,进行拍照

android - 单击非焦点 EditText 时,光标位置未更新

android - @Get Android注解中的任意查询参数

google-chrome - 表格布局 : fixed issue with column widths

android - 我如何使用 Android SDK 将行动态添加到 TableLayout?

android - 即使我在 android 中使用服务,我的操作也不起作用