android ScrollView ListView的回弹效果
来源:互联网 发布:高级ppt制作软件 编辑:程序博客网 时间:2024/05/16 16:36
平常我们在使用ScrollView或者ListView的时候,最终的效果在各个系统上并不相同,有的系统支持滑动到顶后能后还能继续向下滑动一段距离,比如魅族的系统,这样可以很清晰的提示用户到达边界,但是有的系统,比如MIUI并不支持,其实android系统默认是支持这种滑动方式的,就在函数:
- protected boolean overScrollBy(int deltaX, int deltaY, int scrollX, int scrollY, int scrollRangeX, int scrollRangeY, int maxOverScrollX, int maxOverScrollY, boolean isTouchEvent)
其中maxOverScrollX和maxOVerScrollY为超出边界的最大值,但是系统默认值是0,既不会超出边界,有些定制过得系统会修改此值,就实现了回弹的效果
我们要实现这种回弹效果,只要继承ScrollView或者ListView,重写 overScrollBy 方法,修改参数即可,下面以ListView为例
- package com.example.test;
- import android.content.Context;
- import android.util.AttributeSet;
- import android.widget.ListView;
- public class ScrollBackListView extends ListView{
- private static final int MAX_SCROLL = 200;
- private static final float SCROLL_RATIO = 0.5f;// 阻尼系数
- private Context mContext;
- public ScrollBackListView(Context context){
- super(context);
- mContext = context;
- }
- public ScrollBackListView(Context context, AttributeSet attrs){
- super(context, attrs);
- mContext = context;
- }
- public ScrollBackListView(Context context, AttributeSet attrs, int defStyle){
- super(context, attrs, defStyle);
- mContext = context;
- }
- @Override
- protected boolean overScrollBy(int deltaX, int deltaY, int scrollX, int scrollY, int scrollRangeX, int scrollRangeY, int maxOverScrollX, int maxOverScrollY, boolean isTouchEvent){
- int newDeltaY = deltaY;
- int delta = (int) (deltaY * SCROLL_RATIO);
- if (delta != 0) newDeltaY = delta;
- return super.overScrollBy(deltaX, newDeltaY, scrollX, scrollY, scrollRangeX, scrollRangeY, maxOverScrollX, MAX_SCROLL, isTouchEvent);
- }
- }
其中deltaX,deltaY为本次滑动偏移,scrollX,scrollY为当前总偏移,我们可以给deltaY乘以一个小数来达到一种阻尼的效果
结果截图:
- android ScrollView ListView的回弹效果
- 如何实现android ScrollView ListView的回弹效果
- Android ListView的回弹效果
- Android仿IOS回弹效果 ScrollView回弹
- Android回弹阻尼效果的简单实现,非基于ListView,ScrollView.
- 【Android实战】ListView的回弹效果实现
- Android中ListView的回弹效果
- Android仿IOS回弹效果 ScrollView回弹 总结
- Android仿IOS回弹效果 ScrollView回弹 总结
- Android仿IOS回弹效果 ScrollView回弹 总结
- Android ScrollView回弹效果(二)
- Android自定义View--ScrollView实现回弹效果
- Android 三种布局实现上下回弹效果(普通布局,ListView,ScrollView)
- Android 弹性ListView和ScrollView 简单优雅地实现回弹效果
- Android 三种布局实现上下回弹效果(普通布局,ListView,ScrollView)
- Android 去掉ListView/GridView下拉出空白回弹的效果
- Android中自定义仿IOS回弹效果的ListView
- ListView和ScrollView的下拉和上拉的回弹效果
- c++ error: 'malloc' was not declared in this scope
- 最简单关闭软键盘的方法——只需要一行代码,关闭无限个输入视图
- fatal error LNK1123:转换到 COFF 期间失败: 文件无效或损坏
- 网络版 捕鱼设计思路
- 开源中国iOS客户端学习——(六)网络连接检测
- android ScrollView ListView的回弹效果
- 如何从技术走向管理?
- 开源中国iOS客户端学习——(七)MBProgressHUD特效
- RazorEngine
- 人才引进注意事项
- tcpdump使用说明
- 基于角色的权限设计(一)
- 开源中国iOS客户端学习——(八)网络通信AFNetworking类库
- 权限设计(二)