如何更改微调器popup窗口的背景颜色?

我正在尝试设置微调器popup窗口的背景颜色,但我尝试过的所有内容都无法正常工作。

这是微调控件:

 

当我点击它时,它显示一个带有白色背景的popup窗口,我想改变它。

我用来填充popup窗口的xml行是:

  ..........  

和drawable background list_selector.xml:

         

向上面的xml添加默认状态是可以的,但是微调器主控件显示具有该背景颜色的项目,我不希望这样。

我尝试过的另一件事是在styles.xml中将应用程序背景颜色设置为黑色

  #000000 #FFFFFF sans  

这也会覆盖popup背景,但它具有不良的附带效果。 有没有办法以简单的方式实现这一目标?

谢谢!

PS: 我正在使用API​​级别10(2.3.3)并且属性android:popupBackground不存在。

在xml的微调器声明中使用android:popupBackground =“@ drawable / Yourxmlfile.xml”。

对于Eg。

   

上述解决方案均不适合我。

解决方案是在传递给spinner的适配器中写入方法getDropDownView中的不同实现,以显示具有自定义颜色的不同布局:

 @Override public View getView(int position, View convertView, ViewGroup parent) { View vista = convertView; // layout for spinner widget if (vista==null) { LayoutInflater inflater = actividad.getLayoutInflater(); vista = inflater.inflate(R.layout.fila_colores_spinner, null); } return vista; } @Override public View getDropDownView(int position, View convertView,ViewGroup parent) { View vista = convertView; //layout for spinner popup if (vista==null) { LayoutInflater inflater = actividad.getLayoutInflater(); vista = inflater.inflate(R.layout.fila_colores_spinner_popup, null); } return vista; } 

它很棒!!

  • 使用想要的颜色(以及您想要更改的其他属性)声明带有文本视图的布局
  • textView的id 必须是text1 (因为这是在你的微调器的R.android默认布局中声明的id)
  • 在您的微调器适配器中提供此布局

例如:

  • 在res \ layout \ custom_spinner_item.xml中放这个:

     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:background="#B2B5B7" android:gravity="center_horizontal" android:textSize="20dp" 

然后将此布局提供给适配器:

 ArrayAdapter adapter = new ArrayAdapter( MyActivity.this, R.layout.custom_spinner_item, strings); 
  • 然后将此适配器提供给您的微调器
   

尝试这个..