NestedScrollView不必要地滚动到列表的底部

时间:2018-04-10 07:40:40

标签: android android-recyclerview

我有一个像这样的视图结构:

NestedScrollView
    RecyclerView

我实施了分页。问题是RecyclerView不能正常工作,因为NestedScrollView(所有的recyclerview项目都是同时绑定的)。我解决了这个问题:

@Override
public void onScrollChanged() {
    int loaderItemPosition = mRecyclerView.getChildCount() - 1;
    View view = mNestedScrollView.getChildAt(mNestedScrollView.getChildCount() - 1);
    int diff = (view.getBottom() - (mNestedScrollView.getHeight() + mNestedScrollView.getScrollY()));

    if (diff == 0) {
        mNestedScrollView.scrollTo(0, 0);
        load();
    }
}

问题是,如果用户“轻弹”(从上到下快速滚动),滚动弹出到底部列表(它可以滚动到它,将是更正确的说法)。我试图用mNestedScrollView.scrollTo(0, 0);来阻止它。想法是在load();被击中时停止滚动。如果我慢慢滚动,一切都很好,但即使是现在,滚动似乎有点滞后。

有没有办法在load();被击中时停止滚动而不允许滚动超过该位置(当用户轻弹时)?

1 个答案:

答案 0 :(得分:0)

在您的recyclerview中添加android:descendantFocusability="blocksDescendants"。希望这个帮助