簡単なものが欠けていると思いますが、考えられるすべての解決策を何日も試してきました。listview.builder でドロップダウンの選択をどのように処理しますか? ドロップダウン ボタンの値を List-String- に保存することは可能ですか?
XML テンプレートに基づいて動的フォームを作成しており、ドロップダウン、チェックボックス、入力などがあります。編集:ページの読み込み時に XML が解析されるまで、どのウィジェットが必要かわかりません。したがって、動的に作成されたウィジェットのリストを Listview.builder に渡そうとします。
以下のコードは、更新に失敗する基本的な例です。
ここでアドバイスをいただければ幸いです。
import 'package:flutter/material.dart';
class FormEG extends StatefulWidget {
@override
_FormEGState createState() => new _FormEGState();
}
class _FormEGState extends State<FormEG> {
List<String> _listValues;
List<DropdownMenuItem<String>> _items;
List<Widget> _widgets;
@override
void initState() {
_listValues = new List<String>();
_listValues.add("b");
_items = new List<DropdownMenuItem<String>>();
_items.add(new DropdownMenuItem(child: Text("a"), value: "a"));
_items.add(new DropdownMenuItem(child: Text("b"), value: "b"));
_items.add(new DropdownMenuItem(child: Text("c"), value: "c"));
_items.add(new DropdownMenuItem(child: Text("d"), value: "d"));
_widgets = new List<Widget>();
_widgets.add(new DropdownButton<String>(
value: _listValues[0],
items: _items,
onChanged: (String newValue) {
setState(() {
_listValues[0] = newValue;
});
},
));
}
@override
Widget build(BuildContext context) {
return new Scaffold(
body: new ListView.builder(
itemCount: _widgets.length,
itemBuilder: (context, index) {
return _widgets[index];
},
));
}
}