【发布时间】:2014-03-09 02:02:12
【问题描述】:
此问题与使用屏幕宽度展开的元素有关,但最多只能达到 maxWidth。
我的场景涉及一个垂直方向的LinearLayout,其中包含固定的行序列。这些行中的每一行都是一个水平线性布局,包含一些EditText 元素,由TextView 元素分隔。 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 元素保持相同大小?
【问题讨论】:
标签: android android-layout textview