标签:
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