关于沉浸式状态栏
来源:互联网 发布:上海淘宝摄影基地 编辑:程序博客网 时间:2024/05/21 17:09
隐藏ActionBar
ActionBar actionBar = getSupportActionBar(); actionBar.hide();注意,这里是v7包下的ActionBar
“沉浸式”状态栏
// 要求5.0以上版本 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { // 设置内容占据导航栏展示 getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE); // 设置状态栏透明(如果要自定义状态栏颜色可以设置该属性) getWindow().setStatusBarColor(Color.TRANSPARENT); }
以上代码可以实现“沉浸式”状态栏效果,但是根据Android的设计建议,ActionBar是不应该独立于状态栏而单独显示的,因此状态栏如果隐藏了,我们同时也需要调用ActionBar的hide()方法将ActionBar也进行隐藏。
隐藏导航栏
// 要求5.0以上版本 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { // 设置内容占据导航栏展示 getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION); // 设置导航栏透明 getWindow().setNavigationBarColor(Color.TRANSPARENT); }
真正的沉浸式模式
隐藏掉这三个元素就可以实现真正的沉浸式模式
重写Activity的onWindowFocusChanged()方法,然后加入如下逻辑即可:
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); if (hasFocus && Build.VERSION.SDK_INT >= 19) { View decorView = 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); } }}需要注意的是,只有在Android 4.4及以上系统才支持沉浸式模式,因此这里也是加入了if判断。
界面默认情况下是全屏的,状态栏和导航栏都不会显示。而当我们需要用到状态栏或导航栏时,只需要在屏幕顶部向下拉,或者在屏幕右侧向左拉,状态栏和导航栏就会显示出来,此时界面上任何元素的显示或大小都不会受影响。过一段时间后如果没有任何操作,状态栏和导航栏又会自动隐藏起来,重新回到全屏状态。
这就是最标准的沉浸式模式。--摘抄自郭婶博客~~!
郭婶详解:http://blog.csdn.net/guolin_blog/article/details/51763825
阅读全文
0 0
- 关于沉浸式状态栏
- 关于沉浸式状态栏
- 状态栏、沉浸式状态栏
- 关于沉浸式状态栏的一些心得
- 关于状态栏的沉浸式设置
- 关于android沉浸式状态栏功能
- Android关于沉浸式状态栏总结
- 沉浸式状态栏/透明状态栏
- 透明状态栏(沉浸式状态栏)
- Android 沉浸式状态栏
- 沉浸式状态栏
- android 沉浸式 状态栏
- android 沉浸式状态栏
- android沉浸式状态栏
- 沉浸式状态栏
- Android沉浸式状态栏
- Android 沉浸式状态栏
- 沉浸式状态栏
- 几个重要的java数据库访问类和接口
- golang http 编程-2(模版渲染)
- 移动零
- 指针学习(2)三级指针的应用
- 差分约束
- 关于沉浸式状态栏
- 杭电acm1994 利息
- 机器学习
- 使用Java对文件进行分割与合并
- (数学)2017"百度之星"程序设计大赛
- opencv做调色板(python)
- 接上一篇:Ubuntu+QT+Opencv读取视频
- mybatis自定义分页无反应问题
- 对vector等STL标准容器进行排序操作