我具有以下UI層次結構UI控件寬度
滾動查看 - > TableLayout - >行[各行具有的TextView +的EditText]
問題 內一排中,每個視圖應該不超過父級寬度的50%(TableRow)。如果創建EditText來輸入,請說出用戶名,最大字符數爲N;那麼EditText的寬度理想情況下應該是N個字符長,但不能超過50%的限制。
我已經嘗試了許多排列組合,並且迄今爲止無法完成。
我必須按照項目要求編程。
感謝。
我具有以下UI層次結構UI控件寬度
滾動查看 - > TableLayout - >行[各行具有的TextView +的EditText]
問題 內一排中,每個視圖應該不超過父級寬度的50%(TableRow)。如果創建EditText來輸入,請說出用戶名,最大字符數爲N;那麼EditText的寬度理想情況下應該是N個字符長,但不能超過50%的限制。
我已經嘗試了許多排列組合,並且迄今爲止無法完成。
我必須按照項目要求編程。
感謝。
爲了成爲我自己的佈局,我不得不放棄TableLayout。 TableRows中的佈局參數似乎無效。 LinearLayout看起來更加靈活。
現在我有以下佈局層次結構,它的工作原理。
滾動查看 - >的LinearLayout代替TableLayout - > [在LinearLayout中,而不是TableRows encapuslated各個字段]
嘗試使用佈局權重是這樣的:
<TableRow
android:id="@+id/tableRow1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textview1"
android:layout_width="0px"
android:layout_height="wrap_content"
android:layout_weight="1">
</TextView>
<EditText
android:layout_width="0px"
android:layout_height="wrap_content"
android:layout_weight="1" >
</EditText>
</TableRow>
要做到這一點編程,嘗試使用的LayoutParams來完成相同的是這樣的:
TableLayout table = (TableLayout) findViewById(R.id.TableLayout1);
TableRow tr = new TableRow(this);
TableLayout.LayoutParams trparams = new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT, TableLayout.LayoutParams.WRAP_CONTENT);
tr.setLayoutParams(trparams);
textview1 = new TextView(this);
edittext1 = new EditText(this);
TableRow.LayoutParams fieldparams = new TableRow.LayoutParams(0, LinearLayout.LayoutParams.WRAP_CONTENT, 1.0f);
tr.addView(textview1, fieldparams);
tr.addView(edittext1, fieldparams);
table.addView(tr);
謝謝。嘗試了這一點,但它將視圖的寬度固定爲每個50%。但是,如果在EditText中只輸入5個字符,那麼它應該是5個字符長。在這種情況下,50%的空間太長,看起來不太好。 – iuq 2012-02-01 06:38:20
我看到您的評論問的answers.i認爲您可以將edittext或textview的寬度設置爲包裝內容,並將這些控件的最大寬度屬性設置爲屏幕的50%,然後寬度不會超過父寬度的50%。
無法正常工作。你嘗試過嗎? setXXXWidth方法似乎無效。 – iuq 2012-02-01 14:00:55
顯示您在這裏的代碼。所以任何人都可以幫助你 – 2012-02-01 05:54:07
如果你想限制字符,你可以使用android:maxLength =「10」 – 2012-02-01 05:58:37
@AndroidTechMe我的代碼是'問'的建議。 – iuq 2012-02-01 07:11:54