【问题标题】:Android - programmatically add TableRows with vertical aligned itemsAndroid - 以编程方式添加具有垂直对齐项目的 TableRows
【发布时间】:2016-01-25 14:42:25
【问题描述】:

我正在以编程方式填充 TableLayout 中的行。每行包含 3 个 TextView,但它们是水平对齐的,我希望它们是垂直的。

TableLayout table = (TableLayout) findViewById(R.id.tableLayout_customers);
TableRow row = new TableRow(this);
row.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT));

TextView tw_name = new TextView(getApplicationContext());
TextView tw_email = new TextView(getApplicationContext());
TextView tw_phone = new TextView(getApplicationContext());

tw_name.setText("Mr Foo");
tw_email.setText("mrfoo@bar.ninja");
tw_phone.setText("123");

row.addView(tw_name);
row.addView(tw_email);
row.addView(tw_phone);

table.addView(row, new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT, TableLayout.LayoutParams.WRAP_CONTENT));

我试过这个:

 row.setGravity(Gravity.CENTER_VERTICAL);
 row.setOrientation(LinearLayout.VERTICAL);

.. 但显然不是这样。有什么想法吗??

【问题讨论】:

    标签: android alignment orientation tablelayout tablerow


    【解决方案1】:

    插入另一个 TableLayout 并将您的项目放入第二个布局中,而不是插入一个 TableRow。 您对 TableRow 这个名称似乎意味着其中的每个元素都将被放入一个新行这一事实感到困惑。但事实并非如此。 TableRow 的意思是“这是一个新行”。所以 TableRow 创建了一个新行,其中的所有项目都...在这个新行上(水平对齐)

    【讨论】:

      【解决方案2】:

      您只有一个表格行实例,这就是为什么它以水平顺序附加所有文本视图。为每一行创建一个表格行实例并向每个实例添加文本视图,它将为每个文本视图创建一行。

      【讨论】:

        猜你喜欢
        • 2015-12-25
        • 1970-01-01
        • 1970-01-01
        • 2012-01-20
        • 1970-01-01
        • 1970-01-01
        • 2020-11-18
        • 1970-01-01
        • 2019-10-04
        相关资源
        最近更新 更多