CollapsingToolbarLayout 收缩时状态栏颜色设置不生效

Android Design Support Library 中推出了一系列方便开发者实现Material Design concept app的widget,CollapsingToolbarLayout就是其中一个。
网上已有很多博客介绍CollapsingToolbarLayout的使用,所以今天我们不说这个widget怎么使用了,这里主要记录试一下在使用过程中遇到的问题。

如果还不知道怎么使用建议阅读一下文章:

正文

CollapsingToolbarLayout有一个属性可以设置在折叠状态时状态栏的颜色:
app:statusBarScrim=”?attr/colorPrimary”//一般会写成透明或者半透明
但是我发现,在写了这一行代码后没有生效,即颜色还是默认的颜色。
后调查发现:

不管是
1.在布局文件里设置状态栏颜色

<android.support.design.widget.CollapsingToolbarLayout
       android:id="@+id/toolbar_layout"
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:fitsSystemWindows="true"
       app:contentScrim="?attr/colorPrimary"
       app:statusBarScrim="@android:color/holo_purple"
       app:layout_scrollFlags="scroll|exitUntilCollapsed">

2.还是在java代码里设置设置状态栏颜色

   collapsingToolbarLayout.setStatusBarScrimColor(Color.GREEN);

都需要先对状态栏的透明度设置一下,上面的代码才会生效,为啥会这样?暂时没研究。
设置状态栏透明度的三种方法:
1.在style.xml中增加下面的代码把状态栏设置成全透明

   <item name="android:statusBarColor">@android:color/transparent</item>

2.在style.xml中增加下面的代码把状态栏设置成半透明

  <item name="android:windowTranslucentStatus">true</item>

3.在java代码中onCreate()方法里把状态栏设置成半透明

  getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);

如果你已经在style里面把状态栏设置成了透明,那么CollapsingToolbarLayout也想要透明效果的话就无需设置了。

设置半透明和透明的效果如下(两边都是紫色):

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值