滚动到特定项目时 gridview 提高 activity

gridview raise activity when scrolling until a specific item

所以,我有一个 gridview 和它上面的许多其他小部件,例如 imageview、recycleview(水平)、textview 等等一切都很好,但我希望我的 gridview 滚动整个 activity滚动直到到达 recycleview 时也是如此,然后 recycleview 在滚动时到达 gridview 上方,直到到达顶部。 然后 gridview 再次正常滚动。 下面是更具体的解释:

这就是我现在拥有的,例如:

我希望在滚动时发生这种情况:

然后滚动停止到这里:

然后 gridview 将再次开始正常运行,直到我向上滚动!

这是我现在的代码:

 <GridView
        android:id="@+id/gridview2"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_below="@+id/specialityicon"
        android:layout_alignStart="@+id/specialityicon"
        android:layout_alignLeft="@+id/specialityicon"

        android:layout_alignEnd="@+id/specialityicon"
        android:layout_alignRight="@+id/specialityicon"
        android:layout_alignParentBottom="true"
        android:horizontalSpacing="1dp"
        android:numColumns="3"
        android:paddingRight="10dp"
        android:paddingLeft="20dp"
        android:paddingTop="10dp"
        android:verticalSpacing="10dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHeight_percent="0.40"
        app:layout_constraintHorizontal_bias="0.494"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="1.0"
        app:layout_constraintWidth_percent="1" />



    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/reco"
        android:layout_width="0dp"
        android:layout_height="210dp"
        app:layout_constraintBottom_toTopOf="@+id/gridview2"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHeight_percent="0.30"
        app:layout_constraintHorizontal_bias="0.448"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/editTextTextPersonName"
        app:layout_constraintVertical_bias="0.159"
        app:layout_constraintWidth_percent="0.93" />


    <ImageView
        android:id="@+id/imageView"
        android:layout_width="107dp"
        android:layout_height="64dp"
        android:adjustViewBounds="true"
        android:scaleType="centerCrop"
        android:src="@drawable/sadas"
        app:layout_constraintBottom_toTopOf="@+id/gridview2"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="1.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/recyclerView2"
        app:layout_constraintVertical_bias="0.45" />
    </androidx.constraintlayout.widget.ConstraintLayout>

app:nestedScrollingEnabled="false" 添加到您的 GridView 并将您的 ConstraintLayout 包装在 NestedScrollView 中,如下所示:

<androidx.core.widget.NestedScrollView android:layout_width="match_parent"
    android:layout_height="wrap_content"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">


    <ImageView.../>

    <androidx.recyclerview.widget.RecyclerView.../>

    <GridView
        ...
    app:nestedScrollingEnabled="false"
    ...
    />

    </androidx.constraintlayout.widget.ConstraintLayout>
</androidx.core.widget.NestedScrollView>