Android几种制作导航栏沉浸的方式

Android开发过程当中,有很多时候,需要沉浸式的页面效果,我将其整理了一下并记录下来,希望对有类似需求的朋友有帮助。

@Override

protected voidonCreate(BundlesavedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_immersive_mode);

//情况1:全屏模式,不显示状态栏,没有actionbar

//        View decorView = getWindow().getDecorView();

//        int options= View.SYSTEM_UI_FLAG_FULLSCREEN;

//      decorView.setSystemUiVisibility(options);

//      //默认情况下,actionbar不会独立于状态栏存在

//        ActionBar actionBar = getSupportActionBar();

//        actionBar.hide();

//情况2:全屏,将状态栏透明,actionbar隐藏

//        if (Build.VERSION.SDK_INT>=21){

//            View decorView = getWindow().getDecorView();

//            int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE;

//            decorView.setSystemUiVisibility(option);

//            getWindow().setStatusBarColor(Color.TRANSPARENT);

//        }

//        ActionBar actionBar = getSupportActionBar();

//        actionBar.hide();

//情况3:隐藏状态栏,隐藏导航栏

ViewdecorView=getWindow().getDecorView();

intoption=View.SYSTEM_UI_FLAG_HIDE_NAVIGATION

|View.SYSTEM_UI_FLAG_FULLSCREEN;

decorView.setSystemUiVisibility(option);

ActionBaractionBar=getSupportActionBar();

actionBar.hide();

//情况4:透明状态栏,导航栏

//        if (Build.VERSION.SDK_INT >= 21) {

//            View decorView = getWindow().getDecorView();

//            int option = View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION

//                    | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN

//                    | View.SYSTEM_UI_FLAG_LAYOUT_STABLE;

//            decorView.setSystemUiVisibility(option);

//            getWindow().setNavigationBarColor(Color.TRANSPARENT);

//            getWindow().setStatusBarColor(Color.TRANSPARENT);

//        }

//        ActionBar actionBar = getSupportActionBar();

//        actionBar.hide();

}

//沉浸模式,想要设计完全沉浸模式,需要去哦这么设计

@Override

public voidonWindowFocusChanged(booleanhasFocus) {

super.onWindowFocusChanged(hasFocus);

if(hasFocus&&Build.VERSION.SDK_INT>=19) {

ViewdecorView=getWindow().getDecorView();

decorView.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);

}

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容