更改下拉框(Spinner)的背景颜色会隐藏下拉箭头。

6
我有一个Spinner并将其背景色设置为白色。问题是,箭头不见了。我不知道为什么。有什么问题吗?
我正在使用以下代码。
drivers = (Spinner) findViewById(R.id.spinner1);
drivers.setBackgroundColor(Color.WHITE);

ArrayAdapter<String> adp1=new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item , driverList);
adp1.setDropDownViewResource(android.R.layout.select_dialog_singlechoice);
drivers.setAdapter(adp1);
drivers.setPrompt("Select Driver");

这是我的布局:
<Spinner
    android:id="@+id/spinner1"
    android:layout_width="330dp"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_marginTop="10dp"
    android:ellipsize="marquee"/>

有什么想法吗?我希望保留白色背景,但是下拉箭头应该显示。

尝试将 match_parent 赋值给宽度。 - Piyush
"pass" 代表什么意思? - Piyush
抱歉,我复制粘贴了错误的行。 - Luke Villanueva
箭头没有显示在右侧吗? - Piyush
如果您设置Spinner自定义背景颜色,则它将填充包括箭头区域在内的所有区域,因此最好制作带有箭头的自定义背景并将其设置为Spinner背景而不是背景颜色。 - Haresh Chhelana
请参考我的答案:https://dev59.com/T18e5IYBdhLWcg3wTJGL#43759910 - Namrata Bagerwal
2个回答

13

我通过使用 RelativeLayOut 包装 spinner 并为 RelativeLayOut 使用背景色来解决了这个问题。这样箭头就不会消失了。

<RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#f00" >
            <Spinner
        android:id="@+id/spinner1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    </RelativeLayout>

2

使用带箭头的背景图片代替color

代码

drivers.setBackgroundResource(R.drawable.spinner_img);

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