新しいデータ/ MacOSをリロードすると、スクロールSwiftUIリストが一番上にリセットされます

フィリップペグデン

内容を更新できるリストがあります。リストを下にスクロールした後に内容が変更された場合、更新されたリストは一番上にリセットされません。

import SwiftUI

struct MyData {
    let a: [String]
    let b: [String]
    
    init() {
        var pa = [String]()
        var pb = [String]()
        
        for i in 0...100 {
            pa.append("A: \(i)")
            pb.append("B: \(i)")
        }
        
        self.a = pa
        self.b = pb
    }
}

struct ListNotResetingToTop: View {
    let data = MyData()
    @State var showA = true
    
    var body: some View {
        VStack {
            Button("Switch") { showA.toggle() }
            List(showA ? data.a : data.b, id: \.self) { value in
                Text(value)
            }
        }
    }
}

リストをScrollReaderでラップしようとしましたが、これも機能しませんでした。

struct ListNotResetingToTop: View {
    let data = MyData()
    @State var showA = true
    
    var body: some View {
        VStack {
            Button("Switch") { showA.toggle() }
            ScrollViewReader { proxy in
                List(showA ? data.a : data.b, id: \.self) { value in
                    Text(value)
                }.onChange(of: showA) { _ in
                    proxy.scrollTo(showA ? data.a.first : data.b.first)
                }
            }
        }
    }
}
彼の気性

おそらくあなたは次のようなものが必要です

    VStack {
        Button("Switch") { showA.toggle() }

        List(showA ? data.a : data.b, id: \.self) { value in
            Text(value)
        }.id(showA)         // just make id depend on modified data

    }

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

新しいアイテムを追加すると、RecyclerViewスクロールがリストの一番上に戻ります

分類Dev

リサイクラービューリストのデータセットを更新すると、スクロールが一番上に戻ります(重複)

分類Dev

アダプターのデータが変更されたときにグリッドビューが一番上の位置にスクロールしないようにする方法はありますか?

分類Dev

現在のスクロール位置で一番上にスクロールするときにUITableViewをリロードするにはどうすればよいですか?(チャットアプリのように)

分類Dev

Delphi FMXリストボックスが一番下までスクロールされたことを検出しますか?

分類Dev

リンクをクリックすると、スクロール可能な垂直メニューが一番上にジャンプします

分類Dev

テキストフィールドをクリックすると ScrollView が一番上に移動します。

分類Dev

Angular 5ルートをクリックするたびに一番上までスクロールします

分類Dev

スクロールビューのリストビュースクロールビューがリストビューの一番上に移動します。これを防ぐにはどうすればよいですか?

分類Dev

スクロールバーがリストの一番下にあるときに、ボタンをフラッターで有効にする

分類Dev

AGグリッド:スクロールを一番下に固定する方法

分類Dev

小さな仮想リストに反応する-一番下までスクロールしますか?

分類Dev

div内で一番下までスクロールすると、アラートがトリガーされます(Pure JavaScript)

分類Dev

フラッター:常に一番下にスクロールするリストを作成するにはどうすればよいですか?

分類Dev

祝福されたリストテーブル-一番上の行がロックされ、選択またはスクロールできません

分類Dev

角度のあるボタンクリックでリストを一番上にスクロールする方法は?

分類Dev

新しい要素が追加されたときにdivの一番下までスクロールする方法

分類Dev

仮想スクロールでwijmo-gridに新しいデータが追加されると、スクロールが一番上に設定されます

分類Dev

どのdivが一番上にスクロールされているかを特定します

分類Dev

プロット:ズームインしたプロットの空のスペースをダブルクリックすると、軸がリセットされるときに新しいポイントが選択されます

分類Dev

スクロール後、UITableViewの一番上に表示される最初のセルに色を付けます

分類Dev

テキストエディットのスクロールバーを一番上に移動します

分類Dev

AngularJS / ui-ブートストラップアコーディオン-クリックするとアクティブな(開いている)アコーディオンの一番上までスクロールします

分類Dev

Ajaxリクエストに対して文字列が受信された場合にのみ、一番下までスクロールします

分類Dev

Cssグリッドアイテムはスクロールの一番上に固執します

分類Dev

onclickセルのクリックで一番上までスクロールします

分類Dev

データベースからコンポーネントの状態でリストの一番上に新しいアイテムを追加します

分類Dev

Jqueryのページ付けボタンをクリックすると、一番上までスクロールします

分類Dev

クリック時にロード時に新しいページを一番上にスクロールするにはどうすればよいですか?

Related 関連記事

  1. 1

    新しいアイテムを追加すると、RecyclerViewスクロールがリストの一番上に戻ります

  2. 2

    リサイクラービューリストのデータセットを更新すると、スクロールが一番上に戻ります(重複)

  3. 3

    アダプターのデータが変更されたときにグリッドビューが一番上の位置にスクロールしないようにする方法はありますか?

  4. 4

    現在のスクロール位置で一番上にスクロールするときにUITableViewをリロードするにはどうすればよいですか?(チャットアプリのように)

  5. 5

    Delphi FMXリストボックスが一番下までスクロールされたことを検出しますか?

  6. 6

    リンクをクリックすると、スクロール可能な垂直メニューが一番上にジャンプします

  7. 7

    テキストフィールドをクリックすると ScrollView が一番上に移動します。

  8. 8

    Angular 5ルートをクリックするたびに一番上までスクロールします

  9. 9

    スクロールビューのリストビュースクロールビューがリストビューの一番上に移動します。これを防ぐにはどうすればよいですか?

  10. 10

    スクロールバーがリストの一番下にあるときに、ボタンをフラッターで有効にする

  11. 11

    AGグリッド:スクロールを一番下に固定する方法

  12. 12

    小さな仮想リストに反応する-一番下までスクロールしますか?

  13. 13

    div内で一番下までスクロールすると、アラートがトリガーされます(Pure JavaScript)

  14. 14

    フラッター:常に一番下にスクロールするリストを作成するにはどうすればよいですか?

  15. 15

    祝福されたリストテーブル-一番上の行がロックされ、選択またはスクロールできません

  16. 16

    角度のあるボタンクリックでリストを一番上にスクロールする方法は?

  17. 17

    新しい要素が追加されたときにdivの一番下までスクロールする方法

  18. 18

    仮想スクロールでwijmo-gridに新しいデータが追加されると、スクロールが一番上に設定されます

  19. 19

    どのdivが一番上にスクロールされているかを特定します

  20. 20

    プロット:ズームインしたプロットの空のスペースをダブルクリックすると、軸がリセットされるときに新しいポイントが選択されます

  21. 21

    スクロール後、UITableViewの一番上に表示される最初のセルに色を付けます

  22. 22

    テキストエディットのスクロールバーを一番上に移動します

  23. 23

    AngularJS / ui-ブートストラップアコーディオン-クリックするとアクティブな(開いている)アコーディオンの一番上までスクロールします

  24. 24

    Ajaxリクエストに対して文字列が受信された場合にのみ、一番下までスクロールします

  25. 25

    Cssグリッドアイテムはスクロールの一番上に固執します

  26. 26

    onclickセルのクリックで一番上までスクロールします

  27. 27

    データベースからコンポーネントの状態でリストの一番上に新しいアイテムを追加します

  28. 28

    Jqueryのページ付けボタンをクリックすると、一番上までスクロールします

  29. 29

    クリック時にロード時に新しいページを一番上にスクロールするにはどうすればよいですか?

ホットタグ

アーカイブ