原因:在有些自定义刷新的listview中,是通过onTouch来设置下拉刷新功能。如果刚好显示一屏,就会发现进行下拉刷新时在onTouch中无法运行到
MOVE事件,导致这一现象的原因是onTouch事件中MOVE事件被分发给了ScrollView,导致listview下拉无法下拉刷新。
解决方法:自定义ScrollView,创建setListView(ListView listView)方法,把listview传进自定义scrollview,然后再自定义ScrollView中重写onTouch方法并添
加一行代码:listView.onTouch(event);让onTouch事件强制下发给listview。
例:
@Override
public boolean onTouchEvent(MotionEvent ev) {
if (listView != null) {
listView.onTouchEvent(ev);
}
return super.onTouchEvent(ev);
}
public void setListView(ListView listview){
this.listView = listview;
}
当然开发中这种情况很少用的额。也可以尝试用swiperefreshlayout或者Scrllview加个LinnerLayout解决哈