アプリケーションから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

  • PhoneStatusBar.java
  • NavigationBarView.java