gpt4 book ai didi

java - Android - 以编程方式对齐 TableRow 列

转载 作者:行者123 更新时间:2023-12-01 09:56:57 25 4
gpt4 key购买 nike

我在这个问题上被困了几个小时,但我不知道如何解决它。

我已经以编程方式创建了一个表(没问题),但这是我遇到的问题。当我创建行时,我想创建两个单独的列。正如您将在我的示例中看到的,我在同一行上有两个不同的 TextView(“类型”和“数字”)。就目前情况而言,它们都向左移动。

我希望它们位于两个单独的列中,在每列的中心均匀地分开。

这是我想要完成的相关代码。

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;
}

最佳答案

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

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

TableView 的 Activity 逻辑

//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);

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

关于java - Android - 以编程方式对齐 TableRow 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37134443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com