3

を使用して ActionBar にスピナーを表示しActionBar.NAVIGATION_MODE_LISTたいのですが、一部のアプリケーション コンテキストに基づいて非表示/表示したいと考えています。を使用して ActionBar から削除できることがわかりましたがgetActionBar().setNavigationMode(-1)、これが良いアイデアかどうかはわかりません。

これが安全かどうか、またはより安全な代替手段があるかどうかについてのフィードバックはありますか?

4

3 に答える 3

15

多分これはもっと受け入れられます:

ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
actionBar.setDisplayShowTitleEnabled(false);
于 2013-01-30T22:05:11.537 に答える
2

に固執する場合ActionBar.NAVIGATION_MODE_LISTは、スピナーを表示するたびにナビゲーション リスナーを設定する必要があります。それは明らかに最善の解決策ではありません。

ActionBar.setCustomView()代わりに、スピナー ナビゲーションを設定するために使用したい場合があります(参照)。

スピナーを設定するサンプル コードを次に示します。

Spinner navigationSpinner = new Spinner(this);
navigationSpinner.setAdapter(yourSpinnerAdapter);
// Here you set navigation listener
navigationSpinner.setOnItemSelectedListener(yourSpinnerNavigationListener); 
getActionBar().setCustomView(navigationSpinner);
getActionBar().setDisplayShowCustomEnabled(true);

次に、それを表示/非表示にしたい場合は、可視性を変更するだけです:

getActionBar().getCustomView().setVisibility(View.INVISIBLE);
于 2013-07-28T15:32:02.147 に答える