你的位置:首页 > 操作系统

[操作系统]对沉浸式状态栏的理解


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

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

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

 

 

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

 

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

 

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

 

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

 

首先我们在要实现这一效果的布局文件(e.g.  example.

下面代码。考虑到谷歌对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.

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

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

 

 

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