[android]ナビゲーションバーの表示・非表示
android4.xからナビゲーションバーが追加されました。
androidの機種によってナビゲーションバーの表示方法が異なる。
例えば「AQUOS PHONE ZETA SH-06E」であれば画面領域より下の本体自体にハードキーとして配置されている。
一方、「Xperia ZL2 SOL25」では、画面領域の一番下にナビゲーションバーの領域が設けられている。
両機種で画面サイズが同じ「1,920×1,080」であっても、ナビゲーションバーを表示するぶんXperiaの方が実際の画面は小さくなってしまう。
アプリを開発するときにデザインに違いが生まれてしまうため、ナビゲーションバーが表示される機種とされない機種を意識して作成する必要がある。
解決策としては、
・ナビゲーションバーの有無を考慮して2パターンのデザインする。
・ナビゲーションバーを非表示にする。
・ナビゲーションバーを表示する。
という方法が考えられる
「ナビゲーションバーの有無を考慮して2パターンのデザインする。」
ーーーー後日
「ナビゲーションバーを非表示にする。」
これはアプリ側から制御することができる。
画面上に表示されるViewに対して以下のように設定することで非表示にすることができます。
View view = findViewById(R.id.mainLayout);
view.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
この設定では永続的にナビゲーションバーを非表示にすることはできない。
アプリが完全にナビゲーションバーを削除出来てしまっては、ユーザー操作の障害となるため出来ないのだと思われる。
「ナビゲーションバーを表示する。」
4.x以降のandroidのシステムには、ナビゲーションバーが表示されていなくてもフレームワークとして存在する(らしい)。
それを強制的に表示することができるようだが、アプリからは出来ないようで、更にユーザはroot化をしないといけないようであるため、開発時の対応としては向いていない。