介绍
这篇文章给大家介绍通过在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实现一个粘性滑动效果就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。