我TableLayout
要显示一些数据。每行有两列:第一列包含字段名称,第二列包含字段值。如果单击任何字段,我将显示一个EditText
. 我使用ViewSwitcher
.
当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>
这是位置数据较短时视图的外观:
这就是当地点数据有太多字符(第一行已满)时视图的样子:
许可证、日期和时间行不是问题,因为它们的大小是有限的。具有位置数据的行是在字符过多时更改列宽的行。我怎样才能在我的列中始终保持相同的宽度?
谢谢!