当ScrollView不在顶部时,禁用SwipeRefreshLayout

时间:2016-01-10 21:15:27

标签: android scrollview landscape swiperefreshlayout

我的FragmentScrollViewSwipeRefreshLayout。我想在SwipeRefreshLayout不在顶部时禁用ScrollView,因此用户可以再次滚动到Fragment的顶部。我尝试创建自定义ScrollView并覆盖此{/ p>的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是否有效。

1 个答案:

答案 0 :(得分:0)

尝试使用NestedScrollView

当在另一个滚动视图中需要滚动视图时使用。