一万年来谁著史,三千里外欲封侯。这篇文章主要讲述Android的ListView弹动效果相关的知识,希望能为你提供帮助。
继承ListView,重写overScrollBy方法,调用super.overScrollBy()方法,替换maxOverScrollY参数
import android.content.Context; import android.util.AttributeSet; import android.util.DisplayMetrics; import android.widget.ListView; /** * 弹性ListView。 * @author E */ public class FlexiListView extends ListView{ //初始可拉动Y轴方向距离 private static final int MAX_Y_OVERSCROLL_DISTANCE = 100; //上下文环境 private Context mContext; //实际可上下拉动Y轴上的距离 private int mMaxYOverscrollDistance; public FlexiListView(Context context){ super(context); mContext = context; initBounceListView(); }public FlexiListView(Context context, AttributeSet attrs) { super(context, attrs); mContext = context; initBounceListView(); }public FlexiListView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); mContext = context; initBounceListView(); }private void initBounceListView(){ final DisplayMetrics metrics = mContext.getResources().getDisplayMetrics(); final float density = metrics.density; mMaxYOverscrollDistance = (int) (density * MAX_Y_OVERSCROLL_DISTANCE); }@Override protected boolean overScrollBy(int deltaX, int deltaY, int scrollX, int scrollY, int scrollRangeX, int scrollRangeY, int maxOverScrollX, int maxOverScrollY, boolean isTouchEvent) { //实现的本质就是在这里动态改变了maxOverScrollY的值 return super.overScrollBy(deltaX, deltaY, scrollX, scrollY, scrollRangeX, scrollRangeY, maxOverScrollX, mMaxYOverscrollDistance, isTouchEvent); }}
【Android的ListView弹动效果】
推荐阅读
- Android Studio 常见命令
- Android下基于线程池的网络访问基础框架
- Android事件分发机制
- android WebView详解,常见漏洞详解和安全源码
- 计算机体系结构和计算机组织之间的差异
- 打印有趣图案的程序示例
- 使用就地排序算法对对象进行排序
- 密码学中的生日攻击详细介绍
- 亚马逊面试-SDE 1面试体验