通过在Android中自定义StickinessView实现一个粘性滑动效果

  介绍

这篇文章给大家介绍通过在Android中自定义StickinessView实现一个粘性滑动效果,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

一,首先,要确定HeadLayout什么时候可以拦截事件,那么就要确定ListView到达顶部和底部的时机。

 @Override
  公共空间> @Override
  公共布尔>公共静态最终int顶级=0;//收缩状态
  公共静态最终int中心=1;//中间状态
  公共静态最终int=2;//展开状态

关于细节,想必大家画个图就可以知道了,在拦截事件序列的时候,一般ACTION_DOWN事件不可以被拦截,因为拦截的话,没得意义了,后续事件就无法控制了,不可能继续往ChildView传递事件序列。

<强>三,移动HeadView。

@Override   公共布尔> @Override   公共空间computeScroll () {   super.computeScroll ();   如果(mScroll.computeScrollOffset ()) {   mScroll.getCurrY scrollTo (mScroll.getCurrX () ());   postInvalidate ();   }   }

好了,基本完成,我们还要第一时间获取HeadView的高度,那么在onMeasure()中获取比较好,并且只获取一次如下

 @Override
  保护空白>/* *
  *初始化
  */私人空间init () {//获得子元素
  mHeadFiest=getChildAt (0);
  mHeadSecond=getChildAt (1);
  mListView=(视图)getChildAt (2);
  mListView.setOnScrollListener(这个);
  mScroll=new照片卷轴(getContext ());
  }

关于通过在Android中自定义StickinessView实现一个粘性滑动效果就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

通过在Android中自定义StickinessView实现一个粘性滑动效果