我想在我的Android應用程序中構建一個動態表。我希望有一個70%寬的專欄和一個30%寬的專欄。以編程方式應用樣式
如果我採用了android的佈局XML做到這一點:layout_weight我沒有任何問題:
<TableLayout
android:id="@+id/TableLayout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:stretchColumns="*"
android:background="#ffffff" >
<TableRow
android:id="@+id/TableRow4"
style="@style/RigaTabella"
android:background="#d2ef7b" >
<TextView
android:id="@+id/TitoloSpesaTabella"
style="@style/Titolo"
android:layout_width="0px"
android:layout_weight="0.7"
android:background="#cdcdcd"
android:text="@string/spesa" />
<TextView
android:id="@+id/TitoloCostoTabella"
style="@style/Titolo"
android:layout_width="0px"
android:layout_weight="0.3"
android:background="#ababab"
android:text="@string/costo" />
</TableRow>
</TableLayout>
這是我獲得:http://i.imgur.com/DHpXBzJ.jpg
(我用這個灰色背景顯示兩個TextView中的實際尺寸)
但是,如果我嘗試使用此代碼:
TableLayout TableLayout = (TableLayout) findViewById(R.id.TableLayout);
for (int i = 0; i < 10; i++) {
TableRow Row = (TableRow) getLayoutInflater().inflate(R.layout.table_row_style, null);
if (i % 2 == 0)
Row.setBackgroundColor(Color.parseColor("#ffffff"));
else
Row.setBackgroundColor(Color.parseColor("#f1f1f1"));
TextView tv = (TextView) getLayoutInflater().inflate(R.layout.testo_sx_style, null);
tv.setText("Test Test");
TextView tv2 = (TextView) getLayoutInflater().inflate(R.layout.testo_dx_style, null);
tv2.setText("$ 1000");
Row.addView(tv);
Row.addView(tv2);
TableLayout.addView(Row);
}
其中testo_sx_style.xml是:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="0px"
android:layout_height="wrap_content"
android:layout_weight="0.7"
android:gravity="left"
android:textSize="13sp"
android:textColor="#161616"
android:typeface="monospace"
android:background="#cdcdcd"
/>
,並在那裏testo_dx_style.xml是:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="0px"
android:layout_height="wrap_content"
android:layout_weight="0.3"
android:gravity="left"
android:textSize="13sp"
android:textColor="#161616"
android:typeface="monospace"
android:background="#ababab"
/>
我獲得此:http://i.imgur.com/oe6YHsz.png
我真的不知道是什麼錯誤。例如,我也嘗試在testo_sx_style.xml中將layout_width設置爲100px,但不會更改任何內容。似乎有些屬性不適用於我的代碼。
任何人都知道什麼是錯誤?提前致謝。
祝您有美好的一天:)
ps.s.對不起,我的英語
不起作用。但是我找到了解決方案!看看我的回答:)感謝您的幫助:) –