Как запретить автоматическую прокрутку RecyclerView после вычисления макета

#android #android-recyclerview

#Android #android-recyclerview

Вопрос:

У меня есть представление recycler с менеджером горизонтальной линейной компоновки, у него странное поведение автоматической прокрутки до первого элемента, когда я прокручиваю его в первый раз. У вас есть какие-либо идеи о том, как это исправить?

Я уже пытался использовать StaggeredLinearLayout, также пытался использовать фиксированные значения для ширины и высоты, я пытался использовать android: descendantFocusability=»blocksDescendants» также безуспешно. Итак, у меня закончились идеи о том, как это исправить.

 <android.support.v7.widget.RecyclerView
            android:id="@ id/bigItemsRecyclerView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginTop="@dimen/margin_small"
            android:layout_marginBottom="@dimen/margin_normal"
            android:clipToPadding="false"
            android:nestedScrollingEnabled="false"
            app:paddingInner="@dimen/margin_normal" />
 

Я бы хотел, чтобы это была не автоматическая прокрутка, она использует адаптер с фиксированными элементами, поэтому мне не нужно вызывать уведомление об изменении данных, это происходит только один раз, когда я перехожу к следующему элементу. После этой автоматической прокрутки это перестает происходить.

Ответ №1:

Из приведенной выше информации трудно сказать, в чем проблема, но вызов notifyDataSetChanged() при прокрутке (если я вас правильно понял) звучит как то, чего вы не хотите делать.

Например, если вы прокрутите до пункта 1 и вызовете notifyDataSetChanged . Это вызовет обновление, и ваш RecyclerView вернется к первому элементу.

Комментарии:

1. Привет, спасибо за ответ, вот в чем дело, я не вызываю notifyDataSetChanged(), мне это не нужно, потому что элементы на адаптере не меняются