![](/img/trans.png)
[英]android studio: How to programmatically change an adjacent TextView on the same tablerow?
[英]Android - TableRow column alignment programmatically
我已经在这个问题上停留了几个小时,而且我不知道如何通过它。
我已经以编程方式创建了一个表(没问题),但这是我遇到的问题。 创建行时,我想创建两个单独的列。 正如您将在示例中看到的那样,我在同一行上有两个不同的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中定义的此表格布局,以下是相应的Java文件(活动/片段)中的动态代码。
<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);
注意:资源文件中引用了许多值,您可以忽略/复制这些值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.