关闭

Android layer-list 奇妙之处

标签: layer-listAndroid
459人阅读 评论(0) 收藏 举报
分类:

这个是在工作中测试提出的一个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就是把一个背景颜色分成两个部分上面是蓝色的下面是白色效果,实际上是白色覆盖了蓝色,只是上面有个偏移量,没有完全覆盖。这样就达到了想要的效果。
哎,自己都觉得自己有点傻了,这个竟然没有想到。这里有个意识,那就是背景颜色也是再可分的。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:20071次
    • 积分:364
    • 等级:
    • 排名:千里之外
    • 原创:16篇
    • 转载:1篇
    • 译文:1篇
    • 评论:8条
    文章分类
    最新评论