私はアイテムのリストを持っています。これらの項目は日付でソートされます。ユーザーがアプリケーションを開いたときに、前の日付のアイテム(「古いアイテム」)は表示されてはいけませんが、ユーザーはリストをスクロールして表示する必要があります。RecyclerViewとLinearLayoutManagerでアイテム数に関係なく一番上のアイテムを表示するには?
私は、将来日付(「新しい」項目)の最初の項目のposition
を見つけ、recyclerView.scrollToPosition(position)
を呼び出します。
layoutManager.scrollToPositionWithOffset(position, 0)
も試しました。
これは、リストに多数の「新しい」項目がある場合に機能します。
しかし、アイテムが少なすぎる場合(たとえば、「古い」と「新しい」のいずれか)、これらのメソッドは機能しません。
リスト内のアイテムの数にかかわらず、このアイテムを上に配置するために、リストをプログラムによって任意の位置のアイテムにスクロールできますか?
このアダプターを試してください.notifydatasetchanged(); recyclerView.scrollToPosition(position)を呼び出す前に – IMRAN
'recyclerView.scrollToPosition()'を呼び出すと、 'adapter'は既にアイテムで初期化され、' recyclerView'にバインドされています。それ以前にも 'adapter.notifyDataSetChanged()'が呼ばれています。 – mixel