SmoothScrollTo элемент в RecyclerView внутри NestedScrollView - PullRequest
0 голосов
/ 21 января 2019

Это мой макет:

<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
android:id="@+id/nsvRoot"
app:layout_behavior="@string/appbar_scrolling_view_behavior">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:descendantFocusability="blocksDescendants"
    android:orientation="vertical">


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <android.support.v7.widget.CardView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="8dp"
            app:cardCornerRadius="0dp"
            app:cardElevation="4dp">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical">
                <More_Child_Views/>
            </LinearLayout>
        </android.support.v7.widget.CardView>

        <android.support.v7.widget.CardView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="8dp"
            android:layout_marginBottom="8dp"
            app:cardCornerRadius="0dp"
            app:cardElevation="4dp">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical">
                <More_Child_Views/>
            </LinearLayout>
        </android.support.v7.widget.CardView>

        <android.support.v7.widget.CardView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="8dp"
            android:layout_marginBottom="8dp"
            app:cardElevation="4dp">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical">


                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical"
                    android:visibility="gone">

                    <android.support.v7.widget.RecyclerView
                        android:id="@+id/rvItems"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content" />

                </LinearLayout>
            </LinearLayout>
        </android.support.v7.widget.CardView>
    </LinearLayout>

</LinearLayout>

Внизу этого макета есть RecyclerView с идентификатором rvItems.

Я хочу, чтобы корень NestedScrollView прокручивал положение определенного элемента в этом Recyclerview.

Я пытался:

rvItems.getChildAt (ItemIndex) .getY (); * * тысяча двадцать один

, но childAt(itemIndex) возвращает null , rvItems.getItemCount() возвращает 0 , даже если в обзоре переработчика отображается более 15 элементов.

Я предполагаю, что это связано с NestedScrollView как родителем RecyclerView. Как прокрутить позицию элемента в recyclerView?

1 Ответ

0 голосов
/ 21 января 2019

Несколько заметок

Пожалуйста, покажите нам, как вы декларируете / настраиваете ваши адаптеры и отзывы переработчиков.Также сделайте проверку на вашем конце порядка вызова метода / s.(например, сначала настройте адаптер, прежде чем передать его на рассмотрение переработчику).

Что может решить эту проблему

recyclerView.getLayoutManager().scrollToPosition(10); // 10 being the position of the item

Подробнее о

...