【问题标题】:How to disable pulltorefresh when doing swipe to dismiss on Android在 Android 上滑动关闭时如何禁用 pulltorefresh
【发布时间】:2014-06-19 08:04:47
【问题描述】:

我在使用 pulltorefresh 库和 swipe to dismiss ListView 时遇到了一个小问题。 问题是,在用户开始从视图中刷出一个项目后,pulltorefresh 仍然接受触摸事件,并且基本上允许在将项目刷出视图时刷新视图,如果用户不仅水平滑动,而且更多对角线。

有没有办法在滑动手势中完全吃掉触摸事件? 我了解 Android 如何调度触摸事件。实际上,EnhancedListView 在滑动项目时从 onTouchEvent 返回 true,我猜这应该防止事件传递给容器(使用 pulltorefresh)。

您对如何解决此问题有任何建议吗?谢谢

【问题讨论】:

标签: android touch-event pull-to-refresh event-dispatching


【解决方案1】:

我也遇到了同样的问题。 答案是禁用它! ;)

mPullToRefreshLayout.setEnabled(false);

并启用它,

mPullToRefreshLayout.setEnabled(true);

【讨论】:

    【解决方案2】:

    如果你使用 Tim Roes EnhancedListView

    看到这个issues。我对我非常有用,因为他们添加了一个功能,可以检测何时开始滑动以及何时结束。

    当滑动开始时,我禁用 SwipeRefreshLayout,当滑动完成时,我启用 swipeRefreshLayout。

    【讨论】:

      【解决方案3】:

      最简单的方法是

      移除监听器 mRefreshLayout.setOnRefreshListener(null);在 onRefresh(); 并在获取结果后将其设置回 mRefreshLayout.setOnRefreshListener(this);

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-28
        相关资源
        最近更新 更多