【问题标题】:Scrolling down leads to activate the pull down refresh option向下滚动导致激活下拉刷新选项
【发布时间】:2017-01-16 09:56:40
【问题描述】:

我已将滑动刷新布局附加为顶部父节点,以便为用户提供下拉刷新选项。

所以当我向下滚动时,我无法滚动,下拉选项会自动开始加载。

我搜索了一些关于同一问题的堆栈溢出问题。他们说听滚动并根据列表视图当前索引禁用下拉选项。

我已经试着听了。但是向下滚动时我无法收听任何事件。

我的列表视图对象:

    mListView = (ListView) getView().findViewById(android.R.id.list);

谁能帮帮我。任何其他有趣的解决方案或解决方法。

【问题讨论】:

    标签: android listview android-scrollview


    【解决方案1】:

    我是这样做的,而且效果很好:

    class YourActivity extends AppCompatActivity implements ViewTreeObserver.OnScrollChangedListener { 
    @Override
    protected void onStart() {
        super.onStart();
        mListView.getViewTreeObserver().addOnScrollChangedListener(this);
    }
    
    @Override
    protected void onStop() {
        super.onStop();
          mListView.getViewTreeObserver().removeOnScrollChangedListener(this);
    }
    
    
    @Override
    public void onScrollChanged() {
        if (mListView.getFirstVisiblePosition() == 0) {
            swipeRefresh.setEnabled(true);
        } else {
            swipeRefresh.setEnabled(false);
        }
    }
    }
    

    希望这会有所帮助。

    【讨论】:

    • 非常感谢@Mohanand。太棒了...但是我使用了 getFirstVisiblePosition() 而不是 getScrollY()。它工作得很好。你节省了我的时间。谢谢...
    • 确实 getFirstVisiblePosition() 可以工作。欢迎:)
    • 嗨莫哈纳德。我还有一个问题。考虑布局中没有列表视图,当布局的第一个元素可见时,我必须启用/禁用滑动刷新布局。如何实现?
    • 您可以将 addOnScrollChangedListener 添加到滚动视图(列表视图、滚动视图、webview...等)。
    【解决方案2】:

    在我的例子中,我通过将 Scrollview 更改为 NestedScrollView 解决了这个问题。

    切换到 NestedScrollView 后,它工作正常

    【讨论】:

      猜你喜欢
      • 2016-11-01
      • 1970-01-01
      • 2018-12-16
      • 1970-01-01
      • 2016-12-16
      • 2020-08-05
      • 2018-08-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多