记一下滑动顿挫解决

//由于效果不能直接使用 AppBarLayout+CollapsingToolbarLayout
//滑动有顿挫感,肯定是scrollTo时出的问题
//int值直接除以一个int值 会取整所以这样写:
//ivHeaderPhoto.scrollTo(0, -verticalOffset/ 10 * 6);
//移动的时候就是10个单位一下.就会用顿挫感.
//先转为float类型,再转回int型,最小单位就是1个单位.就不会有顿挫感
//ivHeaderPhoto.scrollTo(0, (int) (-verticalOffset * 1.0 / 10 * 6));
appBar.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
    @Override
    public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
        LogUtil.d("verticalOffset " + verticalOffset);
        //滚动背景图
        ivHeaderPhoto.scrollTo(0, (int) (-verticalOffset * 1.0 / 10 * 6));
        ivHeaderPhoto2.scrollTo(0, (int) (-verticalOffset * 1.0 / 10 * 6));
        //设置头部导航栏的 透明度
        float alpha = -verticalOffset / (float) mProductHeaderPictureHeight;
        llTitle.setBackgroundColor(ScrollUtils.getColorWithAlpha(alpha, getResources().getColor(R.color.colorWhite)));
        llProductTitle.setAlpha(alpha);
        if (alpha > 0.8) {
            StatusBarManager.setStatusBarDarkMode(BrandActivity.this, true);
            ivBack.setImageResource(R.drawable.back_black);
            ivSuitcase.setImageResource(R.drawable.suitcase_black);
            tvProductTitle.setTextColor(Color.BLACK);

        } else {
            ivBack.setImageResource(R.drawable.back_white);
            ivSuitcase.setImageResource(R.drawable.suitcase_white);
            tvProductTitle.setTextColor(Color.WHITE);
            StatusBarManager.setStatusBarDarkMode(BrandActivity.this, false);
        }
    }
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值