我正在尝试设置操作栏列表导航的样式,使其在关闭状态下具有白色文本。但是,当我这样做时,它已将全部文本变为白色,这与白色下拉列表无关。
有没有办法单独设计每个样式?文档不存在:(
答案 0 :(得分:1)
为Adapter
添加自定义布局。在这里我创建了一个布局,我添加了一个TextView
。使用text color
和background color
。
并设置atapter,如:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
getBaseContext(), R.layout.my_spinner_style, R.id.textView1,
COUNTRIES);
这里
R.layout.my_spinner_style
是我的自定义布局。
R.id.textView1
是来自my_spinner_style.xml
的textview ID。
您还可以在TextView中展示您的awn样式。检查this和this istical。
检查此代码:
在onCreate
内:
/** Create an array adapter to populate dropdownlist */
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
getBaseContext(), R.layout.my_spinner_style, R.id.textView1,
COUNTRIES);
/** Enabling dropdown list navigation for the action bar */
getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
/** Defining Navigation listener */
ActionBar.OnNavigationListener navigationListener = new OnNavigationListener() {
@Override
public boolean onNavigationItemSelected(int itemPosition,
long itemId) {
Toast.makeText(getBaseContext(),
"You selected : " + COUNTRIES[itemPosition],
Toast.LENGTH_SHORT).show();
return false;
}
};
/**
* Setting dropdown items and item navigation listener for the actionbar
*/
getActionBar().setListNavigationCallbacks(adapter, navigationListener);
my_spinner_style.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFFF00" >
<TextView
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
答案 1 :(得分:0)
可能你可以通过编程方式完成它(虽然我从未尝试过):
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menuId, menu);
menu.findItem(R.id.itemId).getActionView().setBackground(...)
}
答案 2 :(得分:0)
如果您使用Adapter
(必须按定义实现SpinnerAdapter
),您有两个可以覆盖的回调。将为“已选择”项目调用getView
。 {@ 1}}将调用下拉项。您可以在那里设置不同的文字颜色。