我这种野生安卓开发者图省事经常喜欢用别人的框架,比如腾讯的QMUI,但又不喜欢深究,所以在出现BUG的时候就尴尬了。前几天在开发一款安卓APP的时候就遇到了一个问题,QMUI的沉浸任务栏与WebView控件中的编辑框冲突,导致APP标题栏异常。为了解决这个问题,我直接放弃该框架。原因主要有两个,一个是这个bug有点难搞,复制官方demo都会出现。二是我的APP仅仅只用到了沉浸任务栏而已,因此我选择使用安卓原生的任务栏沉浸。
实现方法很简单,只需四步。使用的编译器是谷歌的Android Studio
首先在安卓应用的styles.xml文件中添加如下配置
复制
<style name="FullScreen" parent="Theme.AppCompat.Light.NoActionBar"> <item name="android:windowTranslucentStatus">true</item> </style>
然后在AndroidManifest.xml文件中给你需要任务栏沉浸的Activity应用上面的配置,例如给WebActivity添加
复制
<activity android:name=".WebActivity" android:theme="@style/FullScreen" />
然后在布局文件中给最外层布局添加如下属性,注意:如果出现标题栏异常或者内容跑到标题栏上的情况,可以将内层属性也设置上。
复制
android:fitsSystemWindows="true"
最后在目标Activity的Java代码中的onCreate方法中使用如下代码,应该在加载布局文件之后使用。
复制
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); getWindow().setStatusBarColor(getResources().getColor(R.color.app_color_blue)); }
注意判断该代码执行的安卓版本,安卓6.0应大于API级别23,6.0之前的沉浸都是假沉浸,且目前安卓6.0一下版本的机器较少,直接放弃适配。
评论 (0)