记CoordinatorLayout的一些使用技巧

解决CoordinatorLayout与recyclerview下拉刷新冲突的问题

        backdrop = (ImageView)findViewById(R.id.backdrop);
        appbar = (AppBarLayout) findViewById(R.id.appbar);
        appbar.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
            @Override
            public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
                //通过监听滑动距离设置图片的前景色透明度,达到添加渐变的效果,效果类似于QQ音乐首页的伸缩效果
                backdrop.setColorFilter(changeAlpha(getResources().getColor(R.color.black),Math.abs(verticalOffset*1.0f)/appBarLayout.getTotalScrollRange()));
                //verticalOffset == 0表示图片已经全部展开,否则的话为压缩状态
                if (verticalOffset == 0) {
                    swipeToLoadLayout.setRefreshEnabled(true);
                } else {
                    swipeToLoadLayout.setRefreshEnabled(false);
                }
            }
        });
changeAlpha方法的代码如下
    /** 根据百分比改变颜色透明度 */
    public int changeAlpha(int color, float fraction) {
        int red = Color.red(color);
        int green = Color.green(color);
        int blue = Color.blue(color);
        int alpha = (int) (Color.alpha(color) * fraction);
        return Color.argb(alpha, red, green, blue);
    }

如果CollapsingToolbarLayout中的图片在 伸缩的时候压缩的图片区域全部为黑色,解决办法是检查布局文件中CollapsingToolbarLayout是否有以下的属性,如果有,去掉即可

app:contentScrim="?attr/colorPrimary"

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值