我有一個TableLayout
來顯示一些數據。每行有兩列:第一列有字段名,第二列有字段值。如果有任何字段被點擊,我會顯示一個EditText
。我用ViewSwitcher
來做。Android:EditText中太多字符移動我的視圖(TableLayout with ViewSwitchers)
當TextView
/EditText
只有幾個字符的視圖是好的,但如果第一行是滿的第一列(字段名稱)變得更窄,第二列變寬。我不希望發生這種情況,我希望我的列總是相同的大小。
這是我的佈局:
<TableLayout
android:id="@+id/formLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TableRow
android:id="@+id/tableRow3"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textLicense"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/license"
android:textSize="18sp"
android:textStyle="bold" />
<ViewSwitcher
android:id="@+id/licenseSwitcher"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="3" >
<TextView
android:id="@+id/tvLicenseVariable"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:onClick="LicenseViewClicked"
android:textSize="18sp" />
<com.timeondriver.petrolcontrol.MySpinner
android:id="@+id/spinnerLicense"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:prompt="@string/license_prompt" />
</ViewSwitcher>
</TableRow>
<TableRow
android:id="@+id/tableRow1"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textDate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/date"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:id="@+id/tvDateVariable"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="3"
android:clickable="true"
android:onClick="DateViewClicked"
android:textSize="18sp" />
</TableRow>
<TableRow
android:id="@+id/tableRow2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp">
<TextView
android:id="@+id/textPlace"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/place"
android:textSize="18sp"
android:textStyle="bold" />
<ViewSwitcher
android:id="@+id/placeSwitcher"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="3" >
<TextView
android:id="@+id/tvPlaceVariable"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:onClick="PlaceViewClicked"
android:textSize="18sp" />
<EditText
android:id="@+id/editTextPlace"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:imeOptions="actionDone"
android:maxLines="3"
android:inputType="textMultiLine"
/>
</ViewSwitcher>
</TableRow>
</TableLayout>
這是視圖的外觀時,地方數據很短,如:
這是該視圖時像的地方數據有太多字符(第一行全):
許可證,日期和時間行不是問題,因爲它們的大小是有限的。帶有位置數據的行是字符數過多時更改列寬的行。我如何在列中始終保持相同的寬度?
謝謝!
使用layout_width =「0dip」工作!非常感謝! :d – 2013-03-01 11:28:00