[解決済み] ListViewに戻ったときのスクロール位置の維持/保存/復元
2022-03-24 12:08:06
質問
長い
ListView
があり、ユーザーが前の画面に戻る前にスクロールできるようになっています。ユーザーがこの
ListView
再び、リストを以前と同じポイントにスクロールさせたいのです。これを実現する方法について、何かアイデアがあれば教えてください。
どのように解決するのですか?
これを試してみてください。
// save index and top position
int index = mList.getFirstVisiblePosition();
View v = mList.getChildAt(0);
int top = (v == null) ? 0 : (v.getTop() - mList.getPaddingTop());
// ...
// restore index and position
mList.setSelectionFromTop(index, top);
説明する。
ListView.getFirstVisiblePosition()
は、一番上に表示されているリスト項目を返します。しかし、この項目は部分的にスクロールして見えなくなっている可能性があり、リストの正確なスクロール位置を復元したい場合は、このオフセットを取得する必要があります。そのため
ListView.getChildAt(0)
は
View
をトップリストのアイテムに、そして
View.getTop() - mList.getPaddingTop()
の先頭からの相対オフセットを返します。
ListView
. 次に
ListView
を呼び出すと、そのスクロール位置は
ListView.setSelectionFromTop()
の上端から、欲しいアイテムのインデックスとその上端を配置するオフセットを指定します。
ListView
.
関連
-
adb devices OffLine Solution(オフラインソリューション
-
Android.mk:7: *** セパレータがありません。
-
Android カスタムスピナーコントロールのドロップダウン・ボックスの実装
-
[解決済み] jQueryで要素にスクロールする
-
[解決済み] Bitmapオブジェクトに画像を読み込む際にOutOfMemoryが発生する問題
-
[解決済み] グリッドレイアウトにおけるフリングジェスチャーの検出
-
[解決済み] Vimでカーソルを動かさずに画面を移動させる方法は?
-
[解決済み] スクロールすると背景のListViewが黒くなる
-
[解決済み】リストビュー リストの更新後にリストの最後までスクロールする
-
[解決済み】ユーザーが一番下までスクロールしたかどうかを確認する(ウィンドウだけでなく、任意の要素)【重複】。
最新
-
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デバイスがオフラインであることが判明
-
android.os の NetworkOnMainThreadException。
-
GIF、Lottie、SVGA
-
エラー:未宣言の識別子(AS)の使用
-
view.getRootView()の本当の意味とテストについて
-
Androidプロセス生存のためのソリューション
-
問題 ---- Android ---- ActivityManager: Error: アクティビティクラス{xx/xx.MainActivity}が存在しない
-
Android--shape--描画のコーナー、グラデーション、パディング、サイズ、ソリッド、ストロークのプロパティを指定する。
-
Android.support.v7.widget.Toolbar が見つかりませんでした。
-
[解決済み] フラグメントのインスタンス状態をバックスタックに正しく保存する方法は?