码迷,mamicode.com
首页 > 其他好文 > 详细

对沉浸式状态栏的理解

时间:2016-04-09 08:05:45      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:

Android 4.4版本加入了沉浸式者这项功能,相信大家手中的安卓机也早已是Android 

4.4甚至更高版本。越来越多的应用实现了沉浸式状态栏这一个效果。

我们先看一个Demo,来熟悉一下沉浸式。

技术分享

 

 

在图中可以清晰地看到,我们项目的顶部和手机的状态栏是融合在一起。这样表现得非常美观,自然。

 

其实,实现这一效果并非难事。

 

网上关于沉浸式的例子数不胜数,但是不是误导新人,就是垃圾代码太多。

 

话不多说,来看看我是怎样实现这一个效果的。

 

首先我们在要实现这一效果的布局文件(e.g.  example.xml)对应的Activity里面加入

下面代码。考虑到谷歌对Android 5.0以后的版本进行了大改。所以我们要在代码里进

行判

断,Android 4.4版本的沉浸式和Android 5.0以后版本的沉浸式是不太一样的。

 

@Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
  
        // API >= 4.4 or API < 5.0 全透明状态栏  
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {  
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);  
        }  
  
        // API >=5.0 全透明实现  
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {  
            Window window = getWindow();  
            window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);  
            window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN  
                    | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);  
            window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);  
            window.setStatusBarColor(Color.TRANSPARENT);  
        }  
    }  

然后我们在布局文件(e,g.  example.xml)下添加如下代码

<RelativeLayout...>               ------> 最外层  
...  
</RelativeLayout>             ------> 最外层  
  
在最外层里面加上  
android:clipToPadding="true"  
android:fitsSystemWindows="true"  

至此,我们的沉浸式就实现了。代码量很小,也很容易理解。

 

 

更多编程知识请关注,我的新浪微博: @吴天昊TnnoWu

 

对沉浸式状态栏的理解

标签:

原文地址:http://www.cnblogs.com/cnwutianhao/p/5370537.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!