这个是在工作中测试提出的一个bug,但是不是给我的,但是我看到了,感觉没事做,就动手尝试去修改。没想到这个一个简单的问题,哎,自己没有办法。后来这个被我的同事搞定了,发现使用的就是layer-list
给解决掉了,但是我当时就没有想到。特写此文记录之。
先看一个效果。
可以看到在键盘弹出的一瞬间有一个蓝色背景,这个颜色是跟上面状态栏的颜色是一样的。进入代码查看,结果这两个颜色是由同一个文件里面的同一个layout引起的。代码如下:
顺便说下,状态栏的颜色这里是这样子设置的:
1、在Activity的根布局里设置背景颜色(状态要显示的颜色),然后在上android:fitsSystemWindows="true"
2、再在这个Activity或者Application的主题添加<item name="android:windowTranslucentStatus">true</item>
这个方法在4.4以上的手机都是有效果的。
好了,继续。然后我这个时候我就想着改变根布局的颜色,但是改完之后,状态栏的颜色也就改变了。然后我就没辙了。问了我旁边的同事,他说这个是主题的颜色,没办法修改了。没想到的是另外的一个同事把它搞定了。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ll_activity_base"
android:orientation="vertical"
android:layout_width="match_parent"
android:background="@drawable/bg_theme"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<com.yy.a.widget.CommonTitle
android:id="@+id/commonTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/common_title"/>
<FrameLayout
android:id="@+id/content_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#f5f9fc"/>
</LinearLayout>
这里与上面不同的是只是根布局的android:background="@drawable/bg_theme"
改了。而bg_theme是这样的
效果如下:
这里就是用的layer-list
,恍然大悟啊!!
当时没有一个意思,背景颜色也可以在分解的。上面的layer-list就是把一个背景颜色分成两个部分上面是蓝色的下面是白色效果,实际上是白色覆盖了蓝色,只是上面有个偏移量,没有完全覆盖。这样就达到了想要的效果。
哎,自己都觉得自己有点傻了,这个竟然没有想到。这里有个意识,那就是背景颜色也是再可分的。