我的行动栏目前是这样的:
我希望它是这样的:
忽略徽标旁边的黑线。主要是我想要的是change the color of the text in the IcsSpinner to white
我的活动代码是:
ArrayAdapter<String> listAdapter = new ArrayAdapter<String>(this,
R.layout.sherlock_spinner_item, cities);
listAdapter
.setDropDownViewResource(R.layout.sherlock_spinner_dropdown_item);
setContentView(mViewPager);
final ActionBar bar = getSupportActionBar();
bar.setCustomView(R.layout.custom_actionbar);
bar.setIcon(R.drawable.logo);
bar.setDisplayShowCustomEnabled(true);
IcsSpinner citySpinner = (IcsSpinner) (bar.getCustomView())
.findViewById(R.id.city_spinner);
citySpinner.setAdapter(listAdapter);
我的custom_actionbar.xml是:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:gravity="right|center_vertical"
android:orientation="horizontal" >
<com.actionbarsherlock.internal.widget.IcsSpinner
android:id="@+id/city_spinner"
android:layout_width="wrap_content"
android:layout_height="match_parent"/>
</RelativeLayout>
我甚至希望微调器为just left to the refresh icon
。就像第二张图片一样。
谢谢
答案 0 :(得分:15)
您需要使用getSupportActionBar().getThemedContext()
作为适配器的Context
实例来扩充布局。这将使用适合于在操作栏内膨胀小部件的任何主题,而不是为活动内容设置的主题。
答案 1 :(得分:1)
只是为了赞美接受的答案:在尝试使用构造函数创建新的ArrayAdapter时遇到一些奇怪的NullPointerException后,这对我有用
ActionBar actionBar = getSupportActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
ArrayAdapter<CharSequence> adapter =
ArrayAdapter.createFromResource(actionBar.getThemedContext(),
R.array.action_list, android.R.layout.simple_spinner_dropdown_item);
actionBar.setListNavigationCallbacks(adapter, this);
actionBar.setDisplayShowTitleEnabled(false);