尊重原创,转载请注明出处。Google在Android4.4基础上增加一种全新的体验模式,沉浸模式。也就是隐藏状态栏和NavigationBar。体验很爽。比如看电影的时候,当然希望是全屏模式。
废话不说了。直接上代码。
@Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); if (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); } }
在Activity里面重写onWindowFocusChanged方法,修改DecorView的Flags。就能达成全屏的效果了。
尤其需要注意一点。Google的ActionBar和沉浸模式有冲突,具体效果就是,当进入沉浸模式的时候,开始的几秒钟,页面上方会有一条透明的黑色浮层。
虽然仅仅只有几秒钟的时间,但是交互效果太差。
解决方法:
1、设置theme的主题为NoTitleBar;
2、在OnCreate方法里,调用:getActionBar().hide();
@Override protected void onCreate(Bundle savedInstanceState) { getActionBar().hide(); super.onCreate(savedInstanceState); this.setContentView(R.layout.navigationui_set_layout); initData(); initView(); }
OK,问题完美解决。效果图就不贴了~