将 Spinner 添加到 GridLayout 似乎会“破坏”布局。我准备了一个最小的工作示例来说明这个问题:
我想要一个左边有标签的网格,右边有输入控件。右侧的控件应占用剩余空间。这是一个简单的示例:
用微调器替换其中一个输入控件会导致右列延伸到屏幕边界之外,从而导致布局难看。
为什么会发生这种情况,我该如何避免?
这是第一个示例的代码:
<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnCount="2" >
<TextView
android:layout_gravity="left"
android:text="TextView" />
<EditText
android:layout_gravity="fill_horizontal"
android:hint="EditText" />
<TextView
android:layout_gravity="left"
android:text="TextView" />
<EditText
android:layout_gravity="fill_horizontal"
android:hint="EditText" />
</GridLayout>
这是第二张图片的代码。唯一的区别是第一个 EditText 已被 Spinner 替换:
<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnCount="2" >
<TextView
android:layout_gravity="left"
android:text="TextView" />
<Spinner
android:id="@+id/spinner1"
android:layout_gravity="fill_horizontal" />
<TextView
android:layout_gravity="left"
android:text="TextView" />
<EditText
android:layout_gravity="fill_horizontal"
android:hint="EditText" />
</GridLayout>