4

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

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

导航栏重叠微调器

这是 3 个 Spinner 的 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 中进行测试,但我认为它的行为可能相同。

编辑

我通过使用android:layout_marginBottomSpinners 的属性进行了一些修复。它确实解决了这个问题,但现在我在对话框视图中也有边距,我不希望这样。

微调器重叠临时修复

有谁知道如何仅为下拉资源设置边距?

4

2 回答 2

2

经过更多研究后,您似乎无法操纵 Spinner 下拉列表的高度或任何其他布局属性。

这是因为下拉菜单实际上是一个无法从 Spinner View 访问的弹出对话框。

这个答案说得很清楚:https ://stackoverflow.com/a/1918655/529138

所以它接缝我必须android:layout_marginBottom按照问题中的规定使用。

于 2012-04-09T15:52:48.870 回答
2

即使我面临同样的问题。与您的屏幕不同,我的屏幕只有一个选项。所以我做了一个修复,改变了 android:spinnerMode:"dialog"。

<Spinner
        android:id="@+id/dialog_spinner"
        android:spinnerMode="dialog"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
       >

这将在新对话框中显示您的列表。以防万一可能对搜索类似问题的人有所帮助。

于 2013-07-23T14:19:58.287 回答