1. ホーム
  2. アンドロイド

[解決済み】RecyclerViewをスクロールして、選択したアイテムを一番上に表示させる。

2022-04-04 18:31:10

質問

をスクロールさせる方法を探しています。 RecyclerView を使用して、選択された項目を上に表示します。

の中に ListView を使うことでできました。 scrollTo(x,y) で、センタリングする必要がある要素の先頭を取得します。

のようなものです。

@Override
public void onItemClick(View v, int pos){
    mylistView.scrollTo(0, v.getTop());
}

問題は RecyclerView を使用すると、エラーが返されます。 scrollTo というメソッドがあります。

RecyclerViewは絶対位置へのスクロールをサポートしていません。

をスクロールするにはどうすればよいですか? RecyclerView を使用して、選択したアイテムをビューの最上部に配置できますか?

解決方法は?

を使用している場合は LinearLayoutManager またはStaggered GridLayoutManager があり、それぞれ scrollToPositionWithOffset メソッドで、位置と、アイテムの開始点からのオフセットの両方を受け取ります。 RecyclerView オフセットを 0 に設定すると、上部に揃うはずです)。

例えば

//Scroll item 2 to 20 pixels from the top
linearLayoutManager.scrollToPositionWithOffset(2, 20);