Flutterアプリ開発講座 UI基礎編 その7

image

7|リストを作ってみる

今までの作ったものは一旦リセットして、新しく作っていきます。
こちらのコードをコピペしてまっさらな画面にしましょう。

class _MyHomePageState extends State<MyHomePage> {
  
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(),
    );
  }
}

リセット

ではCenterContainerに変更して、子要素としてListTileを持たせてみましょう。
ListTileはリストに必要な項目が簡単に作れるウィジェットです。
今回はListTiletitleプロパティと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で並べるリスト

上のようにColumnで並べることも可能ですが、今度はListViewを使ってみましょう。
ListViewitemCountプロパティにリストの行数を、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行表示されているはずです👇 ListViewでリスト