Android 下拉刷新与 ListView冲突问题
来源:互联网 发布:mac mpv可以加字幕吗 编辑:程序博客网 时间:2024/05/07 02:07
当我们使用RefreshLayout嵌套ListView进行下拉刷新时,有时候会出现listview可以上拉到底,但是下拉时就会进行刷新操作,而不是滑动listview了。
出现这种问题的原因是在RefreshLayout控件中,只能够放ListView或者LinearLayout单一控件,当RefreshLayout中放两个或多个并列布局时,就会出现滑动冲突问题。
如下布局:
<com.test.custompulltorefresh.RefreshLayout android:id="@+id/refreshLayout" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#303030"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent"> <ListView android:id="@+id/listView" android:background="@android:color/background_light" android:layout_width="match_parent" android:layout_height="match_parent"> </ListView> </LinearLayout> </com.test.custompulltorefresh.RefreshLayout>
因为Listview外部还包这一层LinearLayout,所以就会出现以上这种情况。
那么怎么解决这种呢,就是根据RefreshLayout已经封装的方法,给listview设置setOnScrollListener,重写它的两个方法,
@Override public void onScrollStateChanged(AbsListView view, int scrollState) { Log.e(TAG, "onScrollStateChanged"); //判断ListView是否滑动到第一个Item的顶部 if (view.getChildCount() > 0 && view.getFirstVisiblePosition() == 0 && view.getChildAt(0).getTop() >= view.getPaddingTop()) { //解决滑动冲突,当滑动到第一个item,下拉刷新才起作用 refreshLayout.setEnabled(true); } else { refreshLayout.setEnabled(false); } } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { }
这样就可以避免以上的冲突问题。
涉及到的事件处理问题请右转:
Android触摸事件传递机制
Android事件拦截机制
另附代码Demo,稍微修改就可以。Demo
如有不对或不明白的地方请批评指正,共同交流学习。
阅读全文
0 0
- Android 下拉刷新与 ListView冲突问题
- android之listview滑动与下拉刷新冲突 : listview未到顶部便出现下拉刷新
- android下拉刷新和listview冲突解决方案
- 解决listview下拉与SwipeRefreshLayout下拉刷新冲突
- 解决SwipeRefreshLayout下拉刷新与ListView下拉的冲突
- Android下拉刷新与轮播图冲突解决方案
- android下拉刷新和listview冲突 - listview不能下拉到头部
- Android ListView下拉刷新
- android Listview下拉刷新
- Android ListView下拉刷新
- Android-ListView 下拉刷新
- android listview下拉刷新!
- android listview下拉刷新
- Android ListView下拉刷新
- Android ListView 下拉刷新
- Android ListView下拉刷新
- android ListView下拉刷新
- Android WebView下拉刷新与SwipeRefreshLayout事件冲突解决
- ubuntu server 16.04下搭建redmine系统中ruby相关问题解决
- 常见C++面试问题总结2
- 二级导航div+css
- 《ECMAScript 6入门》笔记5
- PHP摸索中的前端(1)
- Android 下拉刷新与 ListView冲突问题
- (POJ
- 机器学习序
- LocalStorage本地存储扩展使用,本代码基于ng,如果需要可以直接取。
- python_装饰器_语法糖
- 使用IDEA配置Maven
- socket连接和TCP连接的关系
- BLUE Jeans
- react轮播图