Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用RecyclerView的运动布局,在RecyclerView的末尾滚动_Android_Android Recyclerview_Android Motionlayout_Android Scroll - Fatal编程技术网

Android 使用RecyclerView的运动布局,在RecyclerView的末尾滚动

Android 使用RecyclerView的运动布局,在RecyclerView的末尾滚动,android,android-recyclerview,android-motionlayout,android-scroll,Android,Android Recyclerview,Android Motionlayout,Android Scroll,如何用MotionLayout实现scrollToPosition 目前,我有一个RecyclerView和一些标题,隐藏在滚动上并显示是否滚动到顶部。现场如下: <Transition motion:constraintSetEnd="@+id/end" motion:constraintSetStart="@id/start" motion:duration="1000"> <OnS

如何用MotionLayout实现scrollToPosition

目前,我有一个RecyclerView和一些标题,隐藏在滚动上并显示是否滚动到顶部。现场如下:

<Transition
    motion:constraintSetEnd="@+id/end"
    motion:constraintSetStart="@id/start"
    motion:duration="1000">
    <OnSwipe
        motion:touchAnchorId="@+id/header"
        motion:dragDirection="dragUp"
        motion:onTouchUp="stop" />
</Transition>

<ConstraintSet android:id="@+id/start">

    <Constraint
        android:id="@+id/header"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:visibility="visible"
        motion:layout_constraintEnd_toEndOf="parent"
        motion:layout_constraintStart_toStartOf="parent"
        motion:layout_constraintTop_toBottomOf="@id/toolbar" />

    <Constraint
        android:id="@+id/recycler_view"
        android:layout_width="0dp"
        android:layout_height="0dp"
        motion:layout_constraintBottom_toBottomOf="parent"
        motion:layout_constraintEnd_toEndOf="parent"
        motion:layout_constraintStart_toStartOf="parent"
        motion:layout_constraintTop_toBottomOf="@id/header" />

</ConstraintSet>

<ConstraintSet android:id="@+id/end">

    <Constraint
        android:id="@+id/header"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:visibility="invisible"
        motion:layout_constraintBottom_toTopOf="parent"
        motion:layout_constraintEnd_toEndOf="parent"
        motion:layout_constraintStart_toStartOf="parent" />

    <Constraint
        android:id="@+id/recycler_view"
        android:layout_width="0dp"
        android:layout_height="0dp"
        motion:layout_constraintBottom_toBottomOf="parent"
        motion:layout_constraintEnd_toEndOf="parent"
        motion:layout_constraintStart_toStartOf="parent"
        motion:layout_constraintTop_toBottomOf="@+id/toolbar" />
</ConstraintSet>

它适用于一些项目,但在添加10个项目后,如果您位于顶部并添加了一个项目,则RecyclerView会滚动,但它与MotionLayout不同步。是否有任何方法可以通过编程方式滚动recyclerView的运动布局。如果你自己滚动,它会正常工作。

试试看
recyclerView.smoothScrollToPosition(位置)

不是我想要的。这只是操纵recyclerview,而不是motionlayout。
private fun scrollToBottom() {
    val position = routineSetsAdapter.itemCount - 1
    binding.motionLayoutContainer.transitionToEnd()
    binding.recyclerView.scrollToPosition(position)
}