我实现了一个覆盖整个屏幕的自定义布局。在此布局中,用户可以在运行时向布局添加多个列表视图。另外,我对包含自定义布局的片段进行了刷卡刷新。
问题是如果我尝试下拉列表视图,则会触发刷卡刷新,而我无法在列表视图中导航。我试图通过" listView.requestDisallowInterceptTouchEvent(true);
"禁止拦截。如果触摸列表视图,希望这可以防止触发刷卡。不幸的是,这没有成功(根本没有行为改变)。如何实际使用多个列表视图和刷卡刷新?
问题的一个例子:
提前谢谢!
答案 0 :(得分:0)
我通过添加子类来解决它" ScrollableListView扩展了ListView"并将SwipeRefresh引用传递给每个ScrollableListView。然后,我启用或禁用了swipeRefresh,如下所示:
@Override
public boolean onInterceptTouchEvent(MotionEvent ev){
this.onTouchEvent(ev);
return false;
}
@Override
public boolean onTouchEvent(MotionEvent ev){
switch (ev.getAction()){
case MotionEvent.ACTION_DOWN:
analyzer.setRefreshSwipeEnabled(false);
break;
case MotionEvent.ACTION_UP:
analyzer.setRefreshSwipeEnabled(true);
break;
case MotionEvent.ACTION_BUTTON_RELEASE:
case MotionEvent.ACTION_CANCEL:
case MotionEvent.ACTION_HOVER_EXIT:
analyzer.setRefreshSwipeEnabled(true);
break;
}
return super.onTouchEvent(ev);
}
"分析器"是我的主要活动,有以下方法
/**
* Enables or disables the swipe refresh
* @param isEnabled
*/
public void setRefreshSwipeEnabled(boolean isEnabled){
swipeRefresh.setEnabled(isEnabled);
}