Recyclerview无法滚动嵌套的scrollview中的列表的所有元素

时间:2019-08-13 06:01:11

标签: android android-layout android-recyclerview android-nestedscrollview

Recyclerview不在嵌套滚动视图中滚动适配器的所有元素。如果我使用不带嵌套scrollview的Recyclerview,则效果很好。

在搜索了许多解决方案之后,将layout_height设置为使recyclerview和嵌套的scrollview内容翘曲。

这是我的布局

<androidx.coordinatorlayout.widget.CoordinatorLayout               
 xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"                
 android:layout_height="match_parent"
 xmlns:app="http://schemas.android.com/apk/res-auto">

            <com.google.android.material.appbar.AppBarLayout
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:theme="@style/AppTheme.AppBarOverlay"
              tools:ignore="Missing Constraints">
            <androidx.appcompat.widget.Toolbar
              android:id="@+id/transactionHistoryToolbar"
              android:layout_width="match_parent"
              android:layout_height="?attr/actionBarSize"
              android:background="@color/groupColor"
              android:elevation="@dimen/_2"
              android:theme="@style/AppTheme.PopupOverlay">
            </androidx.appcompat.widget.Toolbar>
            </com.google.android.material.appbar.AppBarLayout>

           <androidx.core.widget.NestedScrollView
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:isScrollContainer="true"
             android:measureAllChildren="true"
             app:layout_behavior="@string/appbar_scrolling_view_behavior">

           <androidx.constraintlayout.widget.ConstraintLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:layout_marginBottom="@dimen/_2">

             <TextView/>
              //other views
                <LinearLayout/>

                 <TextView/>

                    <LinearLayout/>

               <TextView/>

                       <LinearLayout/>

                 <Button
                  />

                  <androidx.recyclerview.widget.RecyclerView
                     android:id="@+id/shipmentList"
                      android:layout_width="match_parent"
                      android:layout_height="0dp"
                     android:layout_marginTop="@dimen/_10"
                     android:layout_marginLeft="@dimen/_7"
                    android:layout_marginRight="@dimen/_7"
                     android:clickable="true"
                     android:visibility="gone"
            app:layout_behavior="@string/appbar_scrolling_view_behavior">             
        </androidx.recyclerview.widget.RecyclerView>
                   <TextView/>
                   </androidx.constraintlayout.widget.ConstraintLayout>          
                  </androidx.core.widget.NestedScrollView>

                  </androidx.coordinatorlayout.widget.CoordinatorLayout>

2 个答案:

答案 0 :(得分:1)

您也可以设置此行

ViewCompat.setNestedScrollingEnabled(recyclerView,false); 我们以xml格式写到您的适配器时,我遇到了同样的问题,因此我引用了一个与您共享的链接https://android.jlelse.eu/recyclerview-within-nestedscrollview-scrolling-issue-3180b5ad2542

答案 1 :(得分:0)

我找到了解决方案。 ConstraintLayout的主要问题。替换为相对布局后,效果很好。