を使用して ActionBar にスピナーを表示しActionBar.NAVIGATION_MODE_LIST
たいのですが、一部のアプリケーション コンテキストに基づいて非表示/表示したいと考えています。を使用して ActionBar から削除できることがわかりましたがgetActionBar().setNavigationMode(-1)
、これが良いアイデアかどうかはわかりません。
これが安全かどうか、またはより安全な代替手段があるかどうかについてのフィードバックはありますか?
を使用して ActionBar にスピナーを表示しActionBar.NAVIGATION_MODE_LIST
たいのですが、一部のアプリケーション コンテキストに基づいて非表示/表示したいと考えています。を使用して ActionBar から削除できることがわかりましたがgetActionBar().setNavigationMode(-1)
、これが良いアイデアかどうかはわかりません。
これが安全かどうか、またはより安全な代替手段があるかどうかについてのフィードバックはありますか?
多分これはもっと受け入れられます:
ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
actionBar.setDisplayShowTitleEnabled(false);
に固執する場合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);