実現したいこと
アプリを開いてListViewにitemを追加した後、ListViewを最下部までスクロールしたい。
前提
日記アプリを作っています。
該当のソースコード
Main.Dart
Dart
1ScrollController _scrollController = ScrollController(); 2 3 4 void initState() { 5 super.initState(); 6 7 Future(() async { 8 await rm.madeDiaryOrNot(); 9 await rm.readDiary(); 10 await rm.readDate(); 11 await rm.readTime(); 12 13 setState(() { 14 for (int i = 0; i < diaryList.length; i++) { 15 items.add(diaryList.elementAt(i) + '\n' + translatedList.elementAt(i)); 16 } 17 }); 18 scroll(); 19 }); 20 } 21 22 void scroll() { 23 _scrollController.jumpTo(_scrollController.position.maxScrollExtent); 24 } 25・ 26・ 27・ 28body: Container( 29 //child: Column( 30 child: ListView.builder( 31 scrollDirection: Axis.vertical, 32 shrinkWrap: true, 33 controller: _scrollController, 34 itemCount: items.length, 35 itemBuilder: (BuildContext context, int index) { 36 final item = items[index];
試したこと
initState()内でscroll()を呼び出す位置を変えてみたりしましたが動作しませんでした。
試しに、FloatActionButtonのonPressed()の中でscroll()を呼び出したら、正常に動作しました。
デバッグすると、ListViewにitemが追加される前にscroll()が呼び出されていました。

回答1件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
2023/06/07 10:33