如何使用androidx.core.widget.NestedScrollView修复Android androidx.recyclerview.widget.RecyclerView视图的滚动行为

时间:2019-02-07 12:17:03

标签: android android-recyclerview androidx nestedscrollview

我最近将我的应用程序从app-compat迁移到Androidx,一切正常,希望这无法为androidx.core.widget.NestedScrollView和androidx.recyclerview.widget.RecyclerView都设置一个滚动条兼容,但在Androidx迁移后无法正常工作,这是内部错误还是有其他替代方法

我尝试添加

setHasFixedSize(true)
setNestedScrollingEnabled(false)

在我的活动中这两项均无效,但也将XML更改为

<androidx.core.widget.NestedScrollView
            android:id="@+id/scroll"
            android:layout_width="match_parent"
            android:layout_height="wrap_content
            android:clipToPadding="false"
            android:paddingBottom="5dp"
           app:layout_behavior="@string/appbar_scrolling_view_behavior">

   <LinearLayout
            android:id="@+id/itenarydays"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:background="@color/white"
            >

        <FrameLayout android:layout_width="56dp"
                     android:layout_height="56dp"
                     android:padding="@dimen/textsise10"
                     android:layout_margin="3dp"

                     android:layout_gravity="center"
                     android:background="@drawable/roundshape">
            <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content"
                       app:srcCompat="@drawable/ic_sketch"
                       android:layout_gravity="center"
                       android:tint="@color/white"/>
        </FrameLayout>
        <androidx.recyclerview.widget.RecyclerView
                android:id="@+id/list_daycount"
                android:layout_gravity="center"
                android:layout_width="wrap_content"
                app:layout_behavior="@string/appbar_scrolling_view_behavior"
                android:clipToPadding="false"
                android:nestedScrollingEnabled="false"
                app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
                android:orientation="horizontal"
                android:layout_height="match_parent"

                android:scrollbars="none"
                android:animationCache="true"></androidx.recyclerview.widget.RecyclerView>


        <FrameLayout
                android:id="@+id/framelyt_add"

                android:layout_width="56dp"
                     android:layout_height="56dp"
                     android:padding="@dimen/textsise10"
                     android:layout_margin="3dp"
                     android:layout_gravity="center"
                     android:background="@drawable/shape_redround">
            <ImageView android:layout_width="wrap_content"
                       android:layout_gravity="center" android:layout_height="wrap_content"
                       app:srcCompat="@drawable/ic_plus"
                       android:tint="@color/white"/>
        </FrameLayout>
     </LinearLayout>

    </androidx.core.widget.NestedScrollView>

2 个答案:

答案 0 :(得分:0)

使用此:

app:layout_behavior="@string/appbar_scrolling_view_behavior"

此:

{{1}}

答案 1 :(得分:0)

您似乎需要从RecyclerView中删除layout_behavior属性,因为您已为其禁用嵌套滚动(并且已经为NestedScrollView设置了该属性)