一.基本概念:

一个Android应用程序的界面上状态栏,ActionBar ,导航栏 系统元素的,观察下图:


状态栏、ActionBar、导航栏等。而打造沉浸式模式的用户体验,就是要将这些系统元素全部隐藏,只留下主体内容部分。

二. 常见的Flag:

1. View.SYSTEM_UI_FLAG_FULLSCREEN:Activity全屏显示,且状态栏被隐藏覆盖掉

2.View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN:Activity全屏显示,但状态栏不会被隐藏覆盖,状态栏依然可见,

3. View.SYSTEM_UI_FLAG_LAYOUT_STABLE

使用了SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN和SYSTEM_UI_FLAG_LAYOUT_STABLE,注意两个Flag必须要结合在一起使用,表示会让应用的主体内容占用系统状态栏的空间

4. View.SYSTEM_UI_FLAG_HIDE_NAVIGATION:隐藏虚拟按键(导航栏)。有些手机会用虚拟按键来代替物理按键。

5. View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION:隐藏导航栏 效果同View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN

6. 有的手机默认全屏显示,有时需要强制不显示全屏就用以下flag(我的手机就是怎么也不显示状态栏,发现这个坑)

//不全屏显示getWindow().addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);

//全屏显示getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);

三. 我们常常项目经常的需求是:

   需要实现 隐藏导航栏之外,同时实现透明状态栏类似的效果:


代码实现:

super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);

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

 View decorView =        getWindow().getDecorView();

//隐藏导航栏

intoption = 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 actionBar = getSupportActionBar();

actionBar.hide();


实现效果如图:


更多相关文章

  1. Android中WebView图片实现自适应的方法
  2. Android开发:实现popupwindow中显示listview
  3. Android——使用DatePicker和TimePicker显示当前日期和时间
  4. Android(安卓)时间间隔显示处理 1小时前 1天前 一个月前
  5. android 自定义Toast增加点击事件、Toast弹出隐藏动画、Toast宽
  6. Android实现Service下载文件,Notification显示下载进度的示例
  7. android -------- GifView 显示gif图片
  8. Android(安卓)studio使用相机拍照,保存并显示一坨屎一样的照片
  9. Android可滑动TextView设置大段文字后,如何滚动到结尾显示。

随机推荐

  1. Android自动化测试基础 -- ADB介绍
  2. android实现图片上传功能(springMvc)
  3. python/appium实现app自动化登录
  4. SwipeRefreshLayout和CoordinatorLayout
  5. Android 实现与Eclipse数据交互
  6. Android跨应用跳转
  7. Android中button的onClick事件几种方法
  8. Android 关闭多个Activity的实现方法
  9. Android(安卓)系统状态栏一体化实现
  10. Android关于arm64-v8a、armeabi-v7a、arm