web-dev-qa-db-ja.com

リストの最後の要素にrecyclerviewフォーカスを移動します

Recyclerviewを使用して、チャットウィンドウにメッセージを表示しています。ただし、新しいメッセージが編集されているときは、リサイクラビューのフォーカスは最後の要素にある必要があります。 recyclerviewのフォーカスを最初ではなく最後の要素にシフトする何らかの方法があると思います。

19
Divya Vikash

recyclerView.smoothScrollToPosition(position);を使用します

positionは最後に挿入されたアイテムのインデックスです。これにより、RecyclerViewフォーカスが最後の要素に移動します。

36
Vipul Asri

LinearLayoutManagerオブジェクトに2行のいずれかを追加して、recyclerviewを一番下までスクロールできます...

llm.setStackFromEnd(true);

OR

llm.setReverseLayout(true);
10
rd7773

つかいます

recyclerView.smoothScrollToPosition(position)
adapter.notifyDataSetChanged();

ここで、位置は最後の要素のインデックスです

recyclerView.getAdapter().getItemCount()-1

これを使用して最後の要素を取得します。

これは私のために働いた。

6

確認この位置は、表示するアイテムの位置です。

recyclerView.smoothScrollToPosition(position);
1
Rahul Goswami

次のような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" />
0
Pardeep Singh

できる方法は2つあります。

1:RecyclerViewのLayoutManagerを作成する場合、コンストラクターの最後のパラメーターをtrueとして作成します。

LinearLayoutManager layoutManager = new LinearLayoutManager(MainActivity.this,LinearLayoutManager.HORIZONTAL,true);

2:単にRecyclerViewに最後の位置までスクロールするように指示します。

recyclerView.smoothScrollToPosition(lastPosition);
0
Akshay Chopra