安卓底部导航栏重叠Spinner。设置Spinner下拉高度/边距。

4
在进行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中进行测试,但我认为它可能会表现相同。
EDIT
我通过使用android:layout_marginBottom属性对Spinner进行了一些修复。 它确实解决了问题,但现在我在对话框视图中也有了边距,而我不想要那个。
有人知道如何仅为下拉资源设置边距吗? Spinner overlapping temporary fix
2个回答

2
经过进一步的研究,似乎无法操作Spinner下拉列表的高度或任何其他布局属性。这是因为下拉列表实际上是一个弹出对话框,无法从Spinner视图中访问。如此明确地说明了这个答案:https://stackoverflow.com/a/1918655/529138。因此,我需要使用问题中指定的android:layout_marginBottom

我遇到了同样的问题,真的很烦人的漏洞,你现在找到了更好的解决方法吗? - Jakob Harteg
很遗憾,我没有重新审视这个问题。 - Bandreid

2

我也遇到了同样的问题,不过我的屏幕只有一个选项。所以我进行了修复,将android:spinnerMode更改为"dialog"。

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

这将在新的对话框中显示您的列表。如果有人搜索类似的问题,这可能会有帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接