Android底部导航栏重叠Spinner。设置微调器下拉高度/边距

时间:2012-04-09 14:39:40

标签: android android-layout android-spinner

我在Android Honeycomb项目上遇到了一个有趣的问题。如下图所示,在对话框中展开Spinner时,底部的导航栏与其重叠。因此,无法选择底部的元素。

为了解决这个问题,我尝试在Spinner小部件中使用android:fitsSystemWindows="true"。那没起效。另外我注意到我们有一个XML属性用于下拉宽度android:dropDownWidth,但没有高度。

Navigation Bar overlapping Spinner

以下是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属性来管理一些修复。它确实解决了这个问题,但现在我在对话框视图中也有了边距,我不希望这样。

Spinner overlapping temporary fix

有人知道如何仅为下拉资源设置保证金吗?

2 个答案:

答案 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