前提・実現したいこと
ボタンを押すと指定の場所まで画面スクロールをしたいです。
ただいま登録フォーム画面を作成していて、送信ボタンを押した際にバリデーションフォーマットと違う記述があった場合にエラーメッセージを表示します。それと同時のボタンを押したタイミングで、その間違いの箇所にスクロールして欲しいです。
ScrollControllerを使うのだろうとは思うのですが、実際の具体的な使い方が乗っていなかったので教えて欲しいです。
サンプルソースコード
このサンプルでいうと、一番下のボタンを押すと、赤色のコンテナか青色のコンテナに自動でスクロールするようにしたいです。
Sample
1import 'package:flutter/material.dart'; 2 3void main() => runApp(MyApp()); 4 5class MyApp extends StatelessWidget { 6 int where; 7 @override 8 Widget build(BuildContext context) { 9 return new MaterialApp( 10 home: Container( 11 color: Colors.white, 12 child: SingleChildScrollView( 13 child: Column( 14 children: <Widget>[ 15 Container(height: 100,color: Colors.amber), 16 Container(height: 100,color: Colors.cyanAccent), 17 Container(height: 100,color: Colors.blue), 18 Container(height: 100,color: Colors.cyanAccent), 19 Container(height: 100,color: Colors.amber), 20 Container(height: 100,color: Colors.cyanAccent), 21 Container(height: 100,color: Colors.amber), 22 Container(height: 100,color: Colors.cyanAccent), 23 Container(height: 100,color: Colors.red), 24 Container(height: 100,color: Colors.cyanAccent), 25 Container(height: 100,color: Colors.amber), 26 Container(height: 100,color: Colors.cyanAccent), 27 Container(height: 100,color: Colors.amber), 28 Container(height: 100,color: Colors.cyanAccent), 29 Container(height: 100,color: Colors.amber), 30 Container(height: 100,color: Colors.cyanAccent), 31 Container(height: 100,color: Colors.amber), 32 Container(height: 100,color: Colors.cyanAccent), 33 Container(height: 100,color: Colors.amber), 34 Container(height: 100,color: Colors.cyanAccent), 35 Container(height: 100,color: Colors.amber), 36 Container(height: 100,color: Colors.cyanAccent), 37 Container(height: 100,color: Colors.amber), 38 Container(height: 100,color: Colors.cyanAccent), 39 Container( 40 child:FlatButton( 41 height:100, 42 child:Text("送信"), 43 onPressed:(){ 44 switch(where){ 45 case 1: 46 //青色に遷移 47 break; 48 case 2: 49 //赤色に遷移 50 break; 51 default: 52 //遷移なし 53 } 54 } 55 ) 56 ) 57 ], 58 ), 59 ) 60 ) 61 ); 62 } 63} 64 65
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/19 22:58
2021/02/19 23:37
2021/02/25 01:05 編集