閉じた状態で白いテキストが表示されるように、アクション バー リスト ナビゲーションのスタイルを設定しようとしています。ただし、それを行うと、すべてのテキストが白くなり、白いドロップダウンでは機能しません。
それぞれを個別にスタイルする方法はありますか?ドキュメントは存在しません:(
閉じた状態で白いテキストが表示されるように、アクション バー リスト ナビゲーションのスタイルを設定しようとしています。ただし、それを行うと、すべてのテキストが白くなり、白いドロップダウンでは機能しません。
それぞれを個別にスタイルする方法はありますか?ドキュメントは存在しません:(
のカスタム レイアウトを追加しますAdapter
。これで、1つのレイアウトを作成し、その中にレイアウトを1つ追加しTextView
ました。と。text color
_background color
次のようにアダプターを設定します。
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
getBaseContext(), R.layout.my_spinner_style, R.id.textView1,
COUNTRIES);
ここ
R.layout.my_spinner_style
私のカスタムレイアウトです。
R.id.textView1
からのテキストビュー ID ですmy_spinner_style.xml
。
TextView 内で awn スタイルを適用することもできます。thisとthis areticalを確認してください。
このコードを確認してください:
内側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>
おそらく、プログラムでそれを行うことができます(私は試したことはありませんが):
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menuId, menu);
menu.findItem(R.id.itemId).getActionView().setBackground(...)
}