[解決済み] RecyclerView - ある位置でアイテムの一番上までスムーズにスクロールするには?
2022-04-28 08:09:51
質問
RecyclerViewで、選択した項目の一番上に突然スクロールできるようになりました。
((LinearLayoutManager) recyclerView.getLayoutManager()).scrollToPositionWithOffset(position, 0);
しかし、この 突然 は、項目を一番上の位置に移動させます。アイテムを一番上に移動させたい スルスル .
もやってみた。
recyclerView.smoothScrollToPosition(position);
が、これは選択された位置の項目を一番上に移動させないので、うまく動作しません。単に、その位置にあるアイテムが見えるようになるまでリストをスクロールするだけです。
解決するには?
RecyclerView
は拡張可能な設計になっているので
LayoutManager
(として
droidevが提案した
) を使って、スクロールを行うだけです。
代わりに、単に
SmoothScroller
というプリファレンスで
SNAP_TO_START
:
RecyclerView.SmoothScroller smoothScroller = new LinearSmoothScroller(context) {
@Override protected int getVerticalSnapPreference() {
return LinearSmoothScroller.SNAP_TO_START;
}
};
ここで、スクロールさせたい位置を設定します。
smoothScroller.setTargetPosition(position);
を作成し、そのSmoothScrollerをLayoutManagerに渡します。
layoutManager.startSmoothScroll(smoothScroller);
関連
-
java.lang.NullPointerException: NULLオブジェクト参照で仮想メソッド......を呼び出そうとしました。
-
AndroidエミュレーターのADBサーバーがACKしない問題
-
android:EMSのプロパティ
-
Android カスタムスピナーコントロールのドロップダウン・ボックスの実装
-
Android ProgressBarの色を変更する
-
AndroidStudioのショートカット 検索/置換
-
アプリの実行エラー。ターゲットデバイスが見つからない問題
-
[解決済み] JavaScript/jQueryでページの一番上にスクロールするには?
-
[解決済み] JavaScriptでページの一番上までスクロールする?
-
[解決済み】RecyclerViewをスクロールして、選択したアイテムを一番上に表示させる。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
AndroidエミュレーターのADBサーバーがACKしない問題
-
cygwinのダウンロード、インストールチュートリアル、およびCDTの「makeプログラムがパスに見つからない」バグの解消
-
AndroidStudio3.0 Error:Execution failed for task ':app:processDebugResources'.
-
RuntimeException: アクティビティを開始できません ComponentInfo solution
-
例外「指定された子にはすでに親がいます」の解決方法。removeViewを呼び出す必要があります" の解決方法(ソースコード付き例)
-
Android Nで報告されたエラーを解決する: android.os.FileUriExposedException: file:///storage/emulated/0/
-
ConstraintLayoutのいくつかのプロパティの概要(RelativeLayoutの強化版、LinearLayoutの比例プロパティを含む、階層ツールの削減)。
-
アンドロイドシェイプ、グラデーション、角丸、ボーダーラインの設定
-
Android Studioのgitの使用とgitの設定パス
-
[解決済み】RecyclerViewをスクロールして、選択したアイテムを一番上に表示させる。