此問題與使用屏幕寬度擴展元素有關,但僅限於最大寬度。展開屏幕尺寸最大爲maxWidth的TextView
我的場景包含一個垂直定向的LinearLayout
,其中包含一個固定的行序列。這些行中的每一行都是一個水平的LinearLayout,它包含一些由TextView
元素分隔的EditText
元素。 TextView元素的文本包含一個數學符號(例如+或 - 或/),用於指示第二個框的內容將被添加到(或從等中減去)第一個框,以顯示在UI中的其他位置。
EditText
元素必須保持它們當前的固定寬度,但我希望TextView
元素(像分隔符一樣)在寬度上擴展(如果屏幕允許),但只能達到30dp的最大寬度。目前的一個例子列布局的樣子:
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingLeft="@dimen/row_side_padding"
android:paddingRight="@dimen/row_side_padding"
android:paddingTop="5dp"
android:paddingBottom="5dp">
<EditText
android:id="@+id/editTextBoxOne"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="@string/box_one_hint"
android:imeOptions="actionDone"
android:inputType="numberSigned"
android:maxLines="1" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/plus" />
<EditText
android:id="@+id/editTextBoxTwo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="@string/box_two_hint"
android:imeOptions="actionDone"
android:inputType="numberSigned"
android:maxLines="1" />
</LinearLayout>
這個當前的代碼包裝了的TextView的文本(只是在這個例子中一個加號)的寬度的寬度。這正是我在小屏幕上想要的!
但是,在更寬的屏幕上,如果TextView變得更寬以將元素間隔一點,那將會很不錯。我能夠通過將TextView設置爲:
<TextView
android:layout_width="match_parent"
android:layout_weight="1"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/plus" />
但是,這使得TextView太大。如果屏幕寬度允許,我希望它擴展到最大30dp。但是from what I understand,android:maxWidth
不適用於android:layout_width="match_parent"
因此任何maxWidth都被忽略。
那麼如何擴展我的TextView基於屏幕寬度,但只能達到最大寬度,而留下我的EditText元素相同的大小?