小编典典

ScrollView 内的 Recyclerview 滚动不顺畅

all

对于我的应用程序,我使用了一个RecyclerViewinside
ScrollViewRecyclerView它的高度基于它使用这个库的内容。滚动正常,但是当我滚动到RecyclerView.
当我滚动ScrollView它本身时,它正在平滑滚动。

我用来定义的代码RecyclerView

LinearLayoutManager friendsLayoutManager = new LinearLayoutManager(getActivity().getApplicationContext(), android.support.v7.widget.LinearLayoutManager.VERTICAL, false);
mFriendsListView.setLayoutManager(friendsLayoutManager);
mFriendsListView.addItemDecoration(new DividerItemDecoration(getActivity().getApplicationContext(), null));

RecyclerView中的ScrollView

<android.support.v7.widget.RecyclerView
    android:layout_marginTop="10dp"
    android:layout_marginBottom="10dp"
    android:id="@+id/friendsList"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

阅读 63

收藏
2022-07-17

共1个答案

小编典典

尝试做:

RecyclerView v = (RecyclerView) findViewById(...);
v.setNestedScrollingEnabled(false);

作为替代方案,您可以使用支持设计库修改布局。我猜您当前的布局类似于:

<ScrollView >
   <LinearLayout >

       <View > <!-- upper content -->
       <RecyclerView > <!-- with custom layoutmanager -->

   </LinearLayout >
</ScrollView >

您可以将其修改为:

<CoordinatorLayout >

    <AppBarLayout >
        <CollapsingToolbarLayout >
             <!-- with your content, and layout_scrollFlags="scroll" -->
        </CollapsingToolbarLayout >
    </AppBarLayout >

    <RecyclerView > <!-- with standard layoutManager -->

</CoordinatorLayout >

然而,这是一条更长的路,如果您对自定义线性布局管理器没问题,那么只需禁用回收器视图上的嵌套滚动即可。

编辑(2016 年 4 月 3 日)

支持库的发布现在在所有默认sv 23.2中都包含工厂“说唱内容”功能。LayoutManager我没有测试它,但你可能应该更喜欢它而不是你正在使用的那个库。

<ScrollView >
   <LinearLayout >

       <View > <!-- upper content -->
       <RecyclerView > <!-- with wrap_content -->

   </LinearLayout >
</ScrollView >
2022-07-17