Я использую recyclerview для отображения сообщений в окне чата. Однако, когда новое сообщение редактируется, фокус просмотра ресайклера должен быть на последнем элементе. Я ожидаю, что будет какой-то способ перенести фокус recyclerview на последний элемент, а не на первый.
Сдвиг recyclerview focus на последний элемент в списке
Ответ 1
использовать recyclerView.smoothScrollToPosition(position);
позиция - ваш индекс последнего вставленного элемента. Это переместит ваш фокус RecyclerView
на последний элемент.
Ответ 2
Использование может добавить любую из двух строк в объекте LinearLayoutManager, чтобы прокрутить ваш recyclerview до конца...
llm.setStackFromEnd(true);
ИЛИ
llm.setReverseLayout(true);
Ответ 3
Используйте
recyclerView.smoothScrollToPosition(position)
adapter.notifyDataSetChanged();
где position - индекс последнего элемента
recyclerView.getAdapter().getItemCount()-1
используйте это, чтобы получить последний элемент.
Это сработало для меня.
Ответ 4
Убедитесь, что эта позиция - позиция элемента, который вы хотите просмотреть.
recyclerView.smoothScrollToPosition(position);
Ответ 5
Есть два способа сделать это.
1. Когда вы создаете любой LayoutManager для RecyclerView, сделайте последний параметр в его конструкторе как true
.
LinearLayoutManager layoutManager = new LinearLayoutManager(MainActivity.this,LinearLayoutManager.HORIZONTAL,true);
2: Просто скажите RecyclerView, чтобы перейти к последней позиции.
recyclerView.smoothScrollToPosition(lastPosition);
Ответ 6
Вы можете использовать app: stackFromEnd = "true" в своем XML-коде для представления переработчика, например:
<android.support.v7.widget.RecyclerView
android:id="@+id/message_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/message_input"
android:layout_alignParentTop="true"
app:stackFromEnd="true" />
Ответ 7
Вы можете просто использовать приведенный ниже код
recyclerView.smoothScrollToPosition(recyclerView.getBottom());