1

閉じた状態で白いテキストが表示されるように、アクション バー リスト ナビゲーションのスタイルを設定しようとしています。ただし、それを行うと、すべてのテキストが白くなり、白いドロップダウンでは機能しません。

それぞれを個別にスタイルする方法はありますか?ドキュメントは存在しません:(

スクリーンショット

4

3 に答える 3

1

のカスタム レイアウトを追加します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 スタイルを適用することもできます。thisthis 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>
于 2013-04-05T06:52:53.873 に答える
0

おそらく、プログラムでそれを行うことができます(私は試したことはありませんが):

  public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menuId, menu);

    menu.findItem(R.id.itemId).getActionView().setBackground(...)
  }
于 2013-04-05T04:02:55.057 に答える