当ScrollView不在顶部时禁用SwipeRefreshLayout

3

我有一个包含ScrollViewSwipeRefreshLayoutFragment。当ScrollView不在顶部时,我想禁用SwipeRefreshLayout,这样用户就可以再次滚动到Fragment的顶部。我尝试创建一个自定义的ScrollView并重写onScrollChanged方法,如下所示:

@Override
protected void onScrollChanged(int l, int t, int oldl, int oldt) {
    View view = (View) getChildAt(getChildCount() - 1);
    int d = view.getBottom();
    d -= (getHeight() + getScrollY());
    if (d <= 0) {
        // bottom
    } else if (getScrollY() <= 0) {
        // top
        swipeRefreshLayout.setEnabled(true);
    } else {
        swipeRefreshLayout.setEnabled(false);
        super.onScrollChanged(l, t, oldl, oldt);
    }
}

这在竖屏模式下可以正常工作,但在横屏模式下就不行了。我还尝试检查 getScrollX() <= 0 是否可行,但没有成功。

如果用户不在“ScrollView”的顶部,他们如何触发刷新? - jimmy0251
他回到顶部并滑动。 - Vasileios Pallas
1个回答

0
尝试使用 NestedScrollView
当需要在另一个滚动视图内部有一个滚动视图时,可以使用它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接