魅族手机listview适配问题
2016-03-28 19:55
190 查看
项目中使用上拉刷新下拉加载更多的listview,在魅族机器上运行的时候遇到比较奇怪的bug,和flyme的系统有关系,总结如下,希望可以帮助到没有思路的同学。
关于listview的问题主要和魅族手机的scrollview类顶部可继续下拉有关系。
1.如果你的下拉刷新有比较复杂的动画,那么魅族手机可能会让这个动画无效,需要禁用掉listview本身的下拉模式。
android:overScrollMode=”never” 或者 listView.setOverScrollMode(Listview.OVER_SCROLL_NEVER);
如此就不会对动画产生影响。
2.如果listview的子item过多,产品mm设计了一个点击回到顶部的功能,你大概会选用这个api:listview.smoothScrollToPositionFromTop(int position, int offset);
设置position和offset为0时,就可以回到顶部。但在部分手机上不会达到预期结果,只是滑动了一部分,没有回到顶部,目前已知小米和魅族。
参考stackoverflow上的回答,采用如下思路:
1.正常设置position和offset为0
2.设置滚动监听事件,如果滑动结束,则通过setSelection(0)来设置到顶部。
代码如下:
关于listview的问题主要和魅族手机的scrollview类顶部可继续下拉有关系。
1.如果你的下拉刷新有比较复杂的动画,那么魅族手机可能会让这个动画无效,需要禁用掉listview本身的下拉模式。
android:overScrollMode=”never” 或者 listView.setOverScrollMode(Listview.OVER_SCROLL_NEVER);
如此就不会对动画产生影响。
2.如果listview的子item过多,产品mm设计了一个点击回到顶部的功能,你大概会选用这个api:listview.smoothScrollToPositionFromTop(int position, int offset);
设置position和offset为0时,就可以回到顶部。但在部分手机上不会达到预期结果,只是滑动了一部分,没有回到顶部,目前已知小米和魅族。
参考stackoverflow上的回答,采用如下思路:
1.正常设置position和offset为0
2.设置滚动监听事件,如果滑动结束,则通过setSelection(0)来设置到顶部。
代码如下:
//第三个参数为滚动时间 listView.smoothScrollToPositionFromTop(0,0,1000);
相关文章推荐
- hdu4031 Atack(树状数组区间更新单点求值)
- 检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件失败,原因是出现以下错误: 80070005 拒绝访问
- 三角形5
- iterm2
- html的表单form
- HDU 1064 Financial Management
- Android中Uri的使用
- bzoj4402: Claris的剑
- Spring AOP原理——Java中的动态代理机制
- RxJava学习一:初识
- sed命令学习
- 针对mysql基础数据类型测试
- 非常完善的Log4net详细说明
- JdbcTemplate的使用
- JAVA学习笔记(三)
- GDB调试多文件的工程
- 二叉搜索树的后序遍历序列
- Android多媒体编程基础
- OkHttp使用post请求注意点
- web.config详解