android-tablerow列对齐编程

twh00eeo  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(453)

我在这个问题上纠缠了好几个小时,不知道怎么通过。
我已经通过编程创建了一个表(没问题),但这是我遇到的问题。当我创建行时,我想创建两个独立的列。正如您将在我的示例中看到的,我在同一行上有两个不同的textview('type'和'number')。从目前的情况来看,他们都被移到了左边。
我想要的是把它们分成两列,在每列的中心等分。
下面是我要完成的相关代码。

TableLayout serviceLineLayout = new TableLayout(getContext());
        serviceLineLayout.setLayoutParams(new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT, TableLayout.LayoutParams.MATCH_PARENT));

TableRow firstTableRow = getFirstTableRow(getContext());
        serviceLineLayout.addView(firstTableRow);

private TableRow getFirstTableRow(Context context) {
        TableRow tableRow = new TableRow(context);

        tableRow.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.MATCH_PARENT));

        TextView typeHeader = new TextView(context);
        typeHeader.setId(0);
        typeHeader.setText("Type");
        typeHeader.setTextSize(20);
        tableRow.addView(typeHeader);

        TextView numberHeader = new TextView(context);
        numberHeader.setId(0);
        numberHeader.setText("Number");
        numberHeader.setTextSize(20);
        numberHeader.setGravity(Gravity.RIGHT);
        tableRow.addView(numberHeader);

        return tableRow;
    }
5cnsuln7

5cnsuln71#

对于这个用xml定义的tablelayout,下面是相应java文件(activity/fragment)中的动态代码。

<TableLayout
            android:id="@+id/fenceTableLayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
</TableLayout>

tableview的活动逻辑

//Table Layout parameters
        TableRow.LayoutParams textViewParam = new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT,1.0f);
        TableLayout tableLayout = (TableLayout) view.findViewById(R.id.fenceTableLayout);
        TableRow trHead = new TableRow(context);
        LayoutParams tableRowParams = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
        trHead.setLayoutParams(tableRowParams);

        TextView nameHead = new TextView(context);
        nameHead.setText("Content left");
        nameHead.setLayoutParams(textViewParam);
        nameHead.setGravity(Gravity.CENTER);
        trHead.addView(nameHead);

        TextView detailHead = new TextView(context);
        detailHead.setText("Content right");
        detailHead.setGravity(Gravity.CENTER);
        detailHead.setLayoutParams(textViewParam);

        trHead.addView(detailHead);
        tableLayout.addView(trHead);

注意:从资源文件中引用了许多值,您可以忽略/复制这些值。

相关问题