滑动冲突
ScrollView内部嵌套 RecyclerView 时, 在竖直方向进行滑动时会有滑动冲突
内部拦截
通过重写RecyclerView的onTouchEvent方法不消费事件, 事件会被重新交给ScrollView处理。
外部拦截
通过重写ScrollView的onInterceptTouchEvent对事件进行拦截处理。
显示不全
解决滑动冲突之后发现RecyclerView部分显示不全。
通过日志记录发现下面两种解决方法都会导致RecyclerView中的所有数据一次性进行加载, 这样会有性能问题(Item不能复用), 这种方案不适合用来加载大量的数据。
个人感觉网络数据一般都是初始时显示几条后面一遍滑动一遍加载, 问题应该也不大。
使用NestedScrollView
在RecyclerView外面嵌套一层RelativeLayout
ScrollView滑动到底部刷新数据
notifyDataSetChanged
内部通过reqestLayout进行刷新, 会刷新整个RecyclerView
notifyItemRangeChanged
只会针对指定范围的元素进行刷新