Android Spinner不同的箭头颜色

Android Spinner不同的箭头颜色,android,android-spinner,Android,Android Spinner,1) 我对微调器有奇怪的行为。如果我用ActionBar.NAVIGATION\u MODE\u LIST将其添加到Action Bar ArrayAdapter<CharSequence> barAdapter = new ArrayAdapter<CharSequence>(mContext, R.layout.projects_filter_item, android.R.id.text1, mContext.getResources().getStringArra

1) 我对
微调器有奇怪的行为。如果我用
ActionBar.NAVIGATION\u MODE\u LIST
将其添加到
Action Bar

ArrayAdapter<CharSequence> barAdapter = new ArrayAdapter<CharSequence>(mContext, R.layout.projects_filter_item, android.R.id.text1, mContext.getResources().getStringArray(R.array.projects_filteres));
            barAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
getActionBar().setListNavigationCallbacks(barAdapter, mOnNavigationListener);
getActionBar().setDisplayShowTitleEnabled(false);
3) 如果我在片段的某个地方添加微调器,它看起来很好(很暗)


为什么
微调器有这种不同的行为?

主题应该类似于:

<style name="MyTheme" parent="SomeParentStyle>
    <item name="actionDropDownStyle">@style/MyActionBarSpinnerStyle</item><!-- if you use ABS -->
    <item name="android:actionDropDownStyle">@style/MyActionBarSpinnerStyle</item>
</style>
<style name="MyActionBarSpinnerStyle" parent="@style/MyDropDownActionBarStyle">
    <item name="android:background">@drawable/my_custom_state_list_drawable</item>
</style>

其中,如果您使用ABS或
Widget.Holo.Light.Spinner.DropDown.ActionBar.DropDown,而不是
MyDropDownActionBarStyle
如果您只针对本机ActionBar,则应该有类似于
Widget.Sherlock.Light.Spinner.DropDown.ActionBar的内容。

更改主题没有帮助。如果我像这样以编程方式添加
微调器

android.view.MenuItem filter = menu.findItem(R.id.context_menu_filter);
mFilterSpinner = new Spinner(getActionBar().getThemedContext()); // doesn't matter what context is here, Activity, Application or ActionBar
filter.setActionView(mFilterSpinner);
微调器的箭头为白色

但正如我所说,如果我在xml中添加微调器,它看起来很好

所以,我只是将菜单项创建为LinearLayout

<item
    android:title="Filter"
    android:visible="false"
    android:id="@+id/context_menu_filter"
    app:actionViewClass="android.widget.LinearLayout"
    android:orderInCategory="1"
    app:showAsAction="always"
    /> 
oncreateoptions菜单中
手动充气此布局并添加到线性布局:

        android.view.MenuItem filter = menu.findItem(R.id.context_menu_filter);
        mFilterSpinner = (Spinner) ((LayoutInflater)getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.temp_spinner, null);
        filter.setVisible(true);

        ArrayAdapter<CharSequence> adapter =  new ArrayAdapter<CharSequence>(getActivity(), R.layout.projects_filter_item, 
                android.R.id.text1, getActivity().getResources().getStringArray(R.array.projects_filteres));
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        LinearLayout l = (LinearLayout) MenuItemCompat.getActionView( filter);
        l.addView(mFilterSpinner);
        mFilterSpinner.setAdapter(adapter);
android.view.MenuItem filter=menu.findItem(R.id.context\u menu\u filter);
mFilterSpinner=(微调器)((LayoutInflater)getActivity().getSystemService(Context.LAYOUT\u INFLATER\u SERVICE)).inflate(R.LAYOUT.temp\u微调器,null);
filter.setVisible(true);
ArrayAdapter=新的ArrayAdapter(getActivity(),R.layout.projects\u filter\u项,
android.R.id.text1,getActivity().getResources().getStringArray(R.array.projects_filteres));
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
LinearLayout l=(LinearLayout)MenuItemCompat.getActionView(过滤器);
l、 addView(mFilterSpinner);
mFilterSpinner.setAdapter(适配器);

现在它像应该的那样暗了。

我不想要微调器的自定义背景。我问为什么在这两个实现中它有不同的颜色?
<Spinner xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />
        android.view.MenuItem filter = menu.findItem(R.id.context_menu_filter);
        mFilterSpinner = (Spinner) ((LayoutInflater)getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.temp_spinner, null);
        filter.setVisible(true);

        ArrayAdapter<CharSequence> adapter =  new ArrayAdapter<CharSequence>(getActivity(), R.layout.projects_filter_item, 
                android.R.id.text1, getActivity().getResources().getStringArray(R.array.projects_filteres));
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        LinearLayout l = (LinearLayout) MenuItemCompat.getActionView( filter);
        l.addView(mFilterSpinner);
        mFilterSpinner.setAdapter(adapter);