前提
プルダウンリストで所定の数値を選択後その数値と同じ数分だけのテキスト入力エリアを表示させたいです。
実現したいこと
前提の通りですが、プルダウンリストで指定した数値分だけ非同期でテキスト入力欄を表示させたいです。
例えば
・プルダウンのデフォルト値が1だとしたらテキスト入力エリアを1つ表示
・プルダウンの値を3に変更したらテキスト入力エリアを3つ表示
・プルダウンの値を3から1に変更したらテキスト入力エリアを1つに減らす(この時値を保持可能であれば保持したいです)
発生している問題・エラーメッセージ
エラーメッセージなどは特に出ていません
該当のソースコード
細かい部分は省略しています。
Flutter
1class _hogehogeCreateState extends State<_hogehogeCreate> { 2 String userSelectedButton = '2'; 3 String firstLabel = ''; 4 String secondLabel = ''; 5 6 var selectedValue = '2'; 7 final lists = <String>['2', '3', '4']; 8 9 void userSelect(String userSelected){ 10 selectedValue = userSelected; 11 textFieldSelected(); 12 setState(() {}); 13 } 14 15 void textFieldSelected(){ 16 if(selectedValue == 2){ 17 //ここの条件が合致したら TextField を表示させるものと予想しています。 18 } 19 } 20 21 @override 22 Widget build(BuildContext context) { 23 return Scaffold( 24 body: Column( 25 children: <Widget>[ 26 DropdownButton<String>( 27 value: selectedValue, 28 items: lists 29 .map((String list) => 30 DropdownMenuItem(value: list, child: Text(list))) 31 .toList(), 32 onChanged: (String? value) { 33 setState(() { 34 selectedValue = value!; 35 }); 36 }, 37 ), 38 Text(selectedValue), 39 ], 40 ), 41 ); 42
試したこと
onChangedに if を指定してみましたが駄目でした。
回答3件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。