在嵌套Scrollview滚动内的Recyclerview,但不像普通的Recyclerview或Nested Scrollview那样快速滚动

Aun*_*tet 90 android android-recyclerview android-nestedscrollview

我在RecyclerView里面使用NestedScrollView,它的工作原理.但是当我使用RecyclerView内部LinearLayout或其他东西时,它会根据手势以不同的速度滚动.滚动听手势,如果我只滑了一下,那么滚动一点,如果我快速向上滑动,那么它滚动得非常快.现在我的问题是RecyclerView内部NestedScrollView肯定滚动但快速滚动不起作用.但是我快速或慢速滑动,RecyclerViewNestedScrollView只滚动一点点.

如何使滚动视图中的内部NestedScrollViewRecyclerView内部以各种速度滚动?

Yan*_*ong 260

尝试

recyclerView.setNestedScrollingEnabled(false);
Run Code Online (Sandbox Code Playgroud)

  • 我不知道这个答案是如何得到这么多的赞成票的.如果禁用嵌套滚动则会破坏它的目的.如果我想使用嵌套滚动和回收器怎么办?像CoordinatorLayout,AppBarLayout和RecyclerView这样的东西? (19认同)
  • 但是通过这个设置,recyclerview不会回收视图!你有什么想法呢? (14认同)

Hem*_*hik 51

默认情况下,setNestedScrollingEnabled只能在API-21之后使用.

您可以使用ViewCompat.setNestedScrollingEnabled(recyclerView, false);API-21(Lollipop)之前和之后禁用嵌套滚动.链接到文档.

希望这有帮助!


Zai*_*Ali 22

我正在使用android 16,这是不可能使用setNestedSCrollEnabled方法,

我最终做了什么来阻止RecyclerView处理Scrolls.

就像在LinerLayoutManager中我做了canScrollHorizo​​ntally,canScrollVertically默认返回false.

myRecyclerView.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, false){
            @Override
            public boolean canScrollHorizontally() {
                return false;
            }

            @Override
            public boolean canScrollVertically() {
                return false;
            }
        });
Run Code Online (Sandbox Code Playgroud)


Sar*_*dhi 7

经过几次迭代,我想出了一个解决方案.

  1. 如果您使用的是RecyclerView,那么:

    recyclerView.setNestedScrollingEnabled(false);
    
    Run Code Online (Sandbox Code Playgroud)
  2. 如果您在NestedScrollingView中使用LinearLayout,请将LinearLayout放在普通的ScrollView中,然后将其滚动到

    scrollView.setNestedScrollingEnabled(false);
    
    Run Code Online (Sandbox Code Playgroud)