我在Android Honeycomb项目上遇到了一个有趣的问题。如下图所示,在对话框中展开Spinner时,底部的导航栏与其重叠。因此,无法选择底部的元素。
为了解决这个问题,我尝试在Spinner小部件中使用android:fitsSystemWindows="true"
。那没起效。另外我注意到我们有一个XML属性用于下拉宽度android:dropDownWidth
,但没有高度。
以下是3个Spinners的XMl布局:
<TableRow>
<Spinner
android:id="@+id/order_dialog_category_code_Spinner"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:fitsSystemWindows="true" />
<Spinner
android:id="@+id/order_dialog_packing_code_Spinner"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:fitsSystemWindows="true" />
<Spinner
android:id="@+id/order_dialog_product_Spinner"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:fitsSystemWindows="true" />
</TableRow>
我会继续测试并希望尽快找到解决方案,但这是一个有趣的问题,它应该被发布。
我还没有在Android ICS中测试,但我认为它可能会采取相同的行动。
修改
我通过使用Spinners的android:layout_marginBottom
属性来管理一些修复。它确实解决了这个问题,但现在我在对话框视图中也有了边距,我不希望这样。
有人知道如何仅为下拉资源设置保证金吗?
答案 0 :(得分:3)
即使我遇到同样的问题。与您的屏幕不同,我的屏幕只有一个选项。所以我修改了android:spinnerMode:“dialog”。
<Spinner
android:id="@+id/dialog_spinner"
android:spinnerMode="dialog"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
这将在新对话框中显示您的列表。以防万一可能对搜索类似问题的人有所帮助。
答案 1 :(得分:2)
经过一些研究后,您似乎无法操纵Spinner下拉列表的高度或其他任何布局属性。
这是因为下拉列表实际上是一个弹出式对话框,无法从Spinner视图中加入。
这个答案明确指出:https://stackoverflow.com/a/1918655/529138
所以我必须按照问题中的规定使用android:layout_marginBottom
。