アクティビティのアクション バーのスピナーを見つけて、選択的に表示および非表示にできるようにしようとしています (setNavigationMode
私の目的では機能しません)。このコードを試しましたが、アクション バーがアクティビティの (の拡張SherlockFragmentActivity
) ルート ビューに表示されません。
private View findActionBarSpinner() {
View rootView = findViewById(android.R.id.content).getRootView();
List<View> spinners = traverseViewChildren( (ViewGroup) rootView );
return findListNavigationSpinner(spinners); // implement according to your layouts
}
rootView で得られるのは、レイアウト ファイルで定義された RelativeLayout を含む FrameLayout だけです (要素のみを含む)。アクション バーやスピナーのようなものは何も表示されず、十分な数の traverseViewChildren (上記のリンク) が空のリストを返します。
この回答の精神で、私も試しましたView rootView = getWindow().getDecorView().findViewById(android.R.id.content).getRootView();
。結果は同じでした。
findActionBarSpinner
insideに電話をかけていonOptionsItemSelected
ます。(アクセスできませんが、現時点ではアクション バーは完全に表示され、適切に機能しているため、ライフサイクルの間違った部分でアクセスしようとしたことが問題であるとは思えません。)
何か案は?