2

アクション バーにドロップダウン リストを追加する必要があります。これを行うためにさまざまな方法を試しましたが、どの方法も特定の欠陥を示しています。2回挑戦した結果がこちら。

ここに画像の説明を入力

上部はスピナーで、 によってアクション バーに追加されますactionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);。であるアプリケーション テーマ全体を除いて、スタイルは使用されません@style/Theme.Sherlock。(アプリケーションは新旧のデバイスで均一に見える必要があるため、ActionBarSherlock が使用されます。) ご覧のとおり、このメソッドは暗い/黒の背景に黒のテキスト カラーを生成します。選択した要素は、黒の背景に黒のフォントでアクション バーに「表示」されます。(デフォルトではレイアウトでしたがandroid.R.layout.simple_spinner_itemandroid.R.layout.simple_spinner_dropdown_item利用可能なさまざまなスタイルへの参照を使用してカスタムのものも試しました)。

例えば:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, test);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
actionBar.setListNavigationCallbacks(adapter, new ActionBar.OnNavigationListener()
...

2つ目はメニューです。色に関しては問題ないようです。スピナーで同じスタイル (色、フォント サイズ、配置) を使用したいと思います。しかし、インターネット、特にSOで見つかった多くの提案を試した後、これを取得できません。カスタム スタイルでハードコードされた色を指定したくないことに注意してください。既存のスタイル (システムまたはシャーロックのホロ テーマ) からそれらを継承したい。また、親スタイルは API レベル 10 で認識されている必要があります。とにかく、これらはメニューの受け入れ可能なスタイルです。スピナーに移動するだけです。

メニュー アプローチはそのまま回避策になる可能性がありますが、右下隅に小さな三角形がなく、ドロップダウンがユーザーに表示されることを示しています。スピナー状態リストのドローアブルから来ていることはわかっており、同じ背景をメニュー項目に適用できます。ただし、すべてのメニュー項目に影響しますが、サブメニューのある項目に三角形を表示するだけで済みます。

どちらの方向でも解決策をいただければ幸いです。

4

1 に答える 1

2

サンプルのコードを試してください。

    mLocations = getResources().getStringArray(R.array.locations);

    Context context = getSupportActionBar().getThemedContext();
    ArrayAdapter<CharSequence> list = ArrayAdapter.createFromResource(context, R.array.locations, R.layout.sherlock_spinner_item);
    list.setDropDownViewResource(R.layout.sherlock_spinner_dropdown_item);

    getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
    getSupportActionBar().setListNavigationCallbacks(list, this);

出典: http://bit.ly/19mJdLK

于 2013-04-08T11:54:46.683 に答える