Android MApp永久非表示ナビゲーションバーのSolution
3139 ワード
プロジェクトを行い、お客様はAppでナビゲーションバーを非表示にするように要求します.これは比較的簡単で、ネット上の資料はたくさんあります.今メモをとります.Androidはナビゲーションバーを隠して、いくつかの方法があります:1)システムレベルのコードを修正して、システムにナビゲーションバーを隠す機能を持たせます;この実現方法は、www.jianshu.com/p/f 741 e 3 c 5 b 1 df 2)は、App内で対応するAPIを介してApp自身のナビゲーションバーを直接非表示にする.
2つ目は私たちが今日お話しするテーマです.この案は沈
onWindowFocusChanged関数参照:ここをクリック
2つ目は私たちが今日お話しするテーマです.この案は沈
public class MainActivity extends Activity {
..........
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
......................
final View decorView = getWindow().getDecorView();
final int uiOption = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
|View.SYSTEM_UI_FLAG_LAYOUT_STABLE
|View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
|View.SYSTEM_UI_FLAG_IMMERSIVE
|View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
decorView.setSystemUiVisibility(uiOption);
// This code will always hide the navigation bar
decorView.setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener(){
@Override
public void onSystemUiVisibilityChange(int visibility)
{
if((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0)
{
decorView.setSystemUiVisibility(uiOption);
}
}
});
}
// this is to start to be visible!
@Override
public void onWindowFocusChanged(boolean hasFocus)
{
super.onWindowFocusChanged(hasFocus);
getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
}
}
onWindowFocusChanged関数参照:ここをクリック