今までの作ったものは一旦リセットして、新しく作っていきます。
こちらのコードをコピペしてまっさらな画面にしましょう。
class _MyHomePageState extends State<MyHomePage> {
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Center(),
);
}
}
ではCenter
をContainer
に変更して、子要素としてListTile
を持たせてみましょう。
ListTile
はリストに必要な項目が簡単に作れるウィジェットです。
今回はListTile
のtitle
プロパティとleading
プロパティを設定してみましょう。
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Container(
child: ListTile(
title: Text('ボールペンを買う'),
leading: Radio<bool?>(value: false, groupValue: null, onChanged: null),
),
),
);
変更後: Listの一行が表示されているはずです👇
これをColumn
でたくさん並べてみましょう。
body: Container(
child: Column(
children: [
ListTile(
title: Text('ボールペンを買う'),
leading: Radio<bool?>(value: false, groupValue: null, onChanged: null),
),
ListTile(
title: Text('ボールペンを買う'),
leading: Radio<bool?>(value: false, groupValue: null, onChanged: null),
),
ListTile(
title: Text('ボールペンを買う'),
leading: Radio<bool?>(value: false, groupValue: null, onChanged: null),
),
ListTile(
title: Text('ボールペンを買う'),
leading: Radio<bool?>(value: false, groupValue: null, onChanged: null),
),
ListTile(
title: Text('ボールペンを買う'),
leading: Radio<bool?>(value: false, groupValue: null, onChanged: null),
),
],
),
),
変更後: このようになっているはずです👇
上のようにColumn
で並べることも可能ですが、今度はListView
を使ってみましょう。
ListView
のitemCount
プロパティにリストの行数を、itemBuilder
プロパティに何を表示するのかを設定できます。
body: Container(
child: ListView.builder(
itemCount: 10,
itemBuilder: (context, index) {
return ListTile(
title: Text('ボールペンを買う'),
leading:
Radio<bool?>(value: false, groupValue: null, onChanged: null),
);
},
),
),
変更後: リストが10行表示されているはずです👇