随笔记录1、惯性滑动颜色渐变的Scrollview
2018-03-13 10:35
387 查看
随着Scrollview滚动颜色渐变设置,在Scrollview嵌套RecycleView的时候惯性滑动消失,以下就是解决此问题的自定义Scrollview
第一步:
第三步:想要随着Scrollview滚动view的颜色渐变,当然还要在Activity中调用
第一步:
public class ObservableScrollView extends ScrollView { private int downY; private int mTouchSlop; public interface ScrollViewListener { void onScrollChanged(ObservableScrollView scrollView, int x, int y, int oldx, int oldy); } private ScrollViewListener scrollViewListener = null; public ObservableScrollView(Context context) { super(context); //触发移动事件的最小距离 mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop(); } public ObservableScrollView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop(); } public ObservableScrollView(Context context, AttributeSet attrs) { super(context, attrs); mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop(); } public void setScrollViewListener(ScrollViewListener scrollViewListener) { this.scrollViewListener = scrollViewListener; } @Override protected int computeScrollDeltaToGetChildRectOnScreen(Rect rect) { return 0; } @Override protected void onScrollChanged(int x, int y, int oldx, int oldy) { super.onScrollChanged(x, y, oldx, oldy); if (scrollViewListener != null) { scrollViewListener.onScrollChanged(this, x, y, oldx, oldy); } }
//随手势惯性滚动 @Override public boolean onInterceptTouchEvent(MotionEvent e) { int action = e.getAction(); switch (action) { case MotionEvent.ACTION_DOWN: downY = (int) e.getRawY(); break; case MotionEvent.ACTION_MOVE: int moveY = (int) e.getRawY(); if (Math.abs(moveY - downY) > mTouchSlop) { return true; } } return super.onInterceptTouchEvent(e); } }第二步:当然是在xml中加载布局文件了,这里就不贴代码了
第三步:想要随着Scrollview滚动view的颜色渐变,当然还要在Activity中调用
View.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { convenientBanner.getViewTreeObserver().removeGlobalOnLayoutListener( this); mViewHeight = View.getHeight() ;//view的高度 mScrollView.setScrollViewListener(new ObservableScrollView.ScrollViewListener() { @Override public void onScrollChanged(ObservableScrollView scrollView, int x, int y, int oldx, int oldy) { if (y <= 0) { mTitleView.setBackgroundColor(Color.argb((int) 0, 227, 29, 26)); } else if (y > 0 && y <= mViewHeight) { 4000 float scale = (float) y / mViewHeight; float alpha = (255 * scale); View.setBackgroundColor(Color.argb((int) alpha, 65, 179, 252)); } else { View.setBackgroundColor(Color.argb((int) 255, 65, 179, 252)); } } }); } });
相关文章推荐
- 关于ScrollView向上或向下滑动到顶时如何取消渐变颜色
- Android中自定义ScrollView的滑动监听事件,并在滑动时渐变标题栏背景颜色
- Android随着scrollView或者recyclerView滑动状态栏颜色渐变效果
- APP实用开发—ScrollView滑动标题栏颜色渐变
- ScrollView滑动时隐藏头部颜色渐变
- Android 监听ScrollView滑动 实现布局背景、文本颜色渐变
- android viewPager 滑动标题颜色渐变效果
- Scrollview 嵌套 RecyclerView 及在Android 5.1版本滑动时 惯性消失问题
- Scrollview 嵌套 RecyclerView 及在Android 5.1版本滑动时 惯性消失问题
- ScrollView添加惯性滑动
- 实现Tumblr的标题栏跟滑动渐变颜色(在2个色值之间)的动画
- 仿微信内容滑动底部Tab背景颜色渐变
- Android仿QQ中的“我的空间”做出ScrollView滑动修改标题栏颜色操作
- 自定义ScrollView 滑动改变背景颜色
- android标题栏颜色渐变效果的实现(标题栏随着scrollview的滚动而变化)
- Android之scrollview滑动使导航栏渐变背景色
- 如何让scrollView禁止惯性滑动,精准定位滑动停靠点
- Scrollview 嵌套 RecyclerView 及在Android 5.1版本滑动时 惯性消失问题
- iOS 页面滑动与标题切换颜色渐变的联动效果实例
- Scrollview 嵌套 RecyclerView 及在Android 5.1版本滑动时 惯性消失问题