gpt4 book ai didi

android - 抽屉中的 SwipeRefreshLayout 手势检测

转载 作者:行者123 更新时间:2023-11-29 17:47:14 27 4
gpt4 key购买 nike

我在抽屉中使用 SwipeRefreshLayout。当我在 ListView 中上下滚动时,手势应该是直线上下,如果手指稍微向一侧移动而不抬起它,则滚动手势停止并开始打开关闭抽屉的手势。如果我不使用 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>

代码和这个是一样的: http://antonioleiva.com/swiperefreshlayout/

最佳答案

我遇到了同样的问题。您必须在滚动时“锁定”抽屉,并在滚动完成时再次解锁。为此,我使用了两件事:

  1. 将 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) {

    }
    });
  2. 为避免在尝试触发“刷新事件”时出现一些问题,您应该实现 spencer 在此链接上建议的变通方法:Issue 69074

关于android - 抽屉中的 SwipeRefreshLayout 手势检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25643473/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com