アプリケーションからSystemBarの表示指定をする
Tablet UIモードの際、画面一番下に表示されるSystemBarです。(NavigationBarではありません)
SystemBarの表示指定が可能
アプリケーションから指定する方法は以下のViewクラスのsetSystemUiVisibility()をコールします。
http://developer.android.com/intl/ja/reference/android/view/View.html#setSystemUiVisibility%28int%29
手順はこんな感じ。
- ViewにListenerを登録 View#setOnSystemUiVisibilityChangeListener
- 表示方法を指定 View#setSystemUiVisibility
指定できる表示方法
- 表示を薄くする View.SYSTEM_UI_FLAG_LOW_PROFILE
Tablet UIモードではView.SYSTEM_UI_FLAG_HIDE_NAVIGATIONは使えません。
なんで?って思う人は、ググる前にAndroid Developersを読みましょう。
http://developer.android.com/intl/ja/sdk/android-4.0.html "Controls for system UI visibility"
{ : View view; view = findViewById(R.id.linerLayout); view.setOnSystemUiVisibilityChangeListener(mOnSystemUiVisibilityChangeListener); view.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE); : } private OnSystemUiVisibilityChangeListener mOnSystemUiVisibilityChangeListener = new OnSystemUiVisibilityChangeListener(){ @Override public void onSystemUiVisibilityChange(int visibility) { Log.e("","call onSystemUiVisibilityChange = " + visibility); } };
View.SYSTEM_UI_FLAG_LOW_PROFILE
SystemBarの表示領域はそのまま、ただし薄く表示される。
以下のソースを確認することをお勧めします。
TabletStatusBarは NavigationBarViewを保持していないことがわかります。
\frameworks\base\packages\SystemUI\src\com\android\systemui\statusbar\tablet
- TabletStatusBar.java
\frameworks\base\packages\SystemUI\src\com\android\systemui\statusbar\tablet