Android沉浸(透明状态栏)

来源:互联网 发布:java项目O2O平台 编辑:程序博客网 时间:2024/04/30 14:43

1.让状态栏透明
(1)Java代码修改

if(VERSION.SDK_INT >= VERSION_CODES.KITKAT) {    //透明状态栏    getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);    //透明导航栏    getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);}

(2)Theme文件修改
在Style中加入:

<item name="android:windowTranslucentStatus">true</item><item name="android:windowTranslucentNavigation">true</item>

但是以上方法都会造成内容移动到状态栏下面去,这不是我们想要的。
在XML文件中加上:

android:fitsSystemWindows="true"android:clipToPadding="true"

发现内容是移动下来了,但是导航栏变为灰白色,这是因为导航栏是透明状态,而下面又没有颜色导致的。

解决方法:
http://www.jianshu.com/p/34a8b40b9308

注意!在SlidingMenu中要加入这句才有效果:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);

另外,在5.0之后因为加了上面的代码会导致界面和NavigationBar重合,解决办法:
在Theme文件中加上:

<item name="android:windowDrawsSystemBarBackgrounds">false</item>

2.让导航栏消失(全屏显示)
在Theme文件中添加:

<item name="android:windowFullscreen">true</item>
0 0
原创粉丝点击