我正在尝试以编程方式复制以下布局;但是, setGravity 和 setPadding 似乎没有效果:
我正在尝试在 TableRows 中重新创建文本视图(请注意,有填充,第二个文本视图是右对齐的)。另外,我正在尝试重新创建其他条目,因为它们是动态的:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/myinfo_root"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:scrollbars="vertical"
>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainTable"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns="1">
<TableRow>
<TextView
android:layout_column="1"
android:text="Text1"
android:padding="3dip" />
<TextView
android:id="@+id/text1"
android:text="TBD"
android:gravity="right"
android:padding="3dip" />
</TableRow>
<TableRow>
<TextView
android:layout_column="1"
android:text="Text2"
android:padding="3dip" />
<TextView
android:id="@+id/text2"
android:text="TBD"
android:gravity="right"
android:padding="3dip" />
</TableRow>
. . .
这是添加 TextViews 的代码片段。它似乎有效,但条目没有填充并且没有正确对齐。
int n = 0;
TableLayout table = (TableLayout) findViewById(R.id.mainTable);
for (int j=0; j<2; j++) {
Log.v(LOG_TAG, "entering for loop");
n++;
TableRow tr = new TableRow(getApplicationContext());
tr.setId(100+n);
String key = "hello";
float value = (float) 1.388);
value = value/3600;
TextView tvDynamicKey = new TextView(getApplicationContext());
TextView tvDynamicUnit = new TextView(getApplicationContext());
tvDynamicUnit.setText(Float.toString(value));
tvDynamicUnit.setGravity(Gravity.RIGHT);
tvDynamicKey.setText(key + " " + n);
tvDynamicKey.setPadding(3, 3, 3, 3);
tvDynamicUnit.setPadding(3, 3, 3, 3);
tr.addView(tvDynamicKey);
tr.addView(tvDynamicUnit);
table.addView(tr);
}
}