どうも、ちょげ(@chogetarou)です。
複数のCardを横スクロールで表示する方法を紹介します。
方法

複数のCardを横スクロールで表示する方法は2つあります。
ListView
1つは、ListViewを使う方法です。
まず、ListViewの引数「children」に複数のCardのリストを指定します。
そして、ListViewの引数「scrollDirection」に「Axis.horizontal」を指定します。
ListView(
scrollDirection: Axis.horizontal,
children: [
Card(),
Card(),
Card(),
Card(),
・・・
],
),
以下は、使用例です。
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: SizedBox(
height: 200,
child: ListView(
scrollDirection: Axis.horizontal,
children: [
Card(
child: Container(
width: 200,
),
color: Colors.blue,
),
Card(
child: Container(
width: 200,
),
color: Colors.green,
),
Card(
child: Container(
width: 200,
),
color: Colors.yellow,
),
Card(
child: Container(
width: 200,
),
color: Colors.pink,
),
],
shrinkWrap: true,
),
),
),
);
}
PageView
もう1つは、PageViewを使う方法です。
具体的には、PageViewの引数「children」に複数のCardのリストを設定します。
PageView(
children: [
Card(),
Card(),
Card(),
Card(),
・・・
],
),
以下は、使用例です。
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: SizedBox(
height: 200,
child: PageView(
controller: PageController(viewportFraction: 0.7),
children: [
Card(color: Colors.blue),
Card(color: Colors.green),
Card(color: Colors.yellow),
Card(color: Colors.pink),
],
),
),
),
);
}
まとめ
複数のCardを横スクロールで表示するには、ListViewもしくはPageViewを使います。
コメント