//由于效果不能直接使用 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); } } });
记一下滑动顿挫解决
最新推荐文章于 2024-05-07 21:54:22 发布