我在抽屉里使用SwipeRefreshLayout。当我在列表视图中向上和向下滚动时,手势应该是直线上下移动,如果手指只是移动一点而不抬起它,滚动手势就会停止并启动手势以打开关闭抽屉。 如果我没有使用SwipeRefreshLayout,滚动手势不会停止,直到我举起手指。
这是布局:
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/swipe_to_refresh_lisview_container"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="vertical"
tools:ignore="NestedWeights" >
<views.IndexableListView
android:id="@+id/listview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFFFF" />
</android.support.v4.widget.SwipeRefreshLayout>
答案 0 :(得分:3)
我遇到了同样的问题。滚动时必须“锁定”抽屉,滚动均匀后再次解锁。为此,我使用了两件事:
将OnScrollListener添加到listView,如:
mDrawerListView.setOnScrollListener(new AbsListView.OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView absListView, int i) {
if (i == SCROLL_STATE_IDLE)
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
else
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_OPEN);
}
@Override
public void onScroll(AbsListView absListView, int i, int i2, int i3) {
}
});
为避免尝试触发“刷新事件”时出现问题,您应该在此链接上实施spencer建议的解决方法:Issue 69074