Nexus 5/5x 上不显示微调器下拉箭头

Spinner dropdown arrow doesn't display on Nexus 5/5x

我有一个自定义微调器 - 在 Nexus 7 (Marshmallow) 和 Moto X 2014 (Lollipop) 上进行测试时,一切正常。但是,当我在 Nexus 5 或 5X (Marshmallow) 上进行测试时,没有显示微调器的下拉箭头。我试过各种对齐和填充,但这似乎没有什么不同。

我的微调器XML:

<Spinner
    android:id="@+id/spinner"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_marginRight="32dp"
    android:layout_marginLeft="32dp"/>

通过代码应用此自定义样式:

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textSize="18sp"
    android:paddingTop="0dp"
    android:paddingBottom="0dp"
    android:paddingRight="8dp"
    android:ellipsize="marquee"
    android:textColor="#FFFFFF"
    android:gravity="center"/>

编辑:查看布局相关部分的屏幕截图,其中显示了布局边界。那是微调器,右边应该有一个下拉箭头。

编辑 2:以及 Nexus 7 上同一区域的屏幕截图。

我认为您应该在 Spinner

中添加 style="@android:style/Widget.DropDownItem.Spinner"

首先,这可能是因为 Nexus 7Nexus 5 之间的宽度问题,因此请尝试根据需要添加 android:minWidth="200dp"minWidth 属性。

第二种选择是添加 android:background 属性,这样相同的样式将应用于所有设备。

android:background="@android:drawable/btn_dropdown"

如果以后不在微调器中添加下拉箭头不会有问题,作为替代,您可以将其设置为 @null 并在每个设备中显示相同的外观。

android:background="@null"

我有一个非常相似的问题,事实证明,除非您至少有 32dp x 32dp 可用 space,否则微调器箭头不会显示。

我怀疑是 TextView 上的 android:paddingRight="8dp" 导致了问题