๋ฐ๋ณต๋๋ ๋ถ๋ถ์ ์์ ์ฐ์ง ์๊ณ ๋ฐ๋ณตํด์ ๋ง๋ค ์ ์๋ค. ์ด ๋ ์ธ ์ ์๋ ๊ฒ์ด ListView.builder ์ด๋ค.
โพ Example
์ง๊ธ๋ถํฐ ๋ง๋ค์ด ๋ณผ ๋ถ๋ถ์ธ๋ฐ ๋ณด๋ผ์์ด list_view๋ถ๋ถ์ด๊ณ icons๊ฐ ํ๋์๋ถ๋ถ์ด๋ค
โพ Code
list_view์ ๋ฐ๋ณต๋๋ ๋ถ๋ถ์ ๋ฐ๋ก ํ์ผ(icons.dart)๋ก ๋นผ์ ๋ํ๋๊ฑฐ๋ค.
list_view.dart
Container(
margin: EdgeInsets.only(top: 10, bottom: 20),
child: Text('${descList[index]}'),
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Text(
'${majorList[index]}',
style: TextStyle(color: Colors.grey),
),
Container(
child: iconList(),
),
],
),
]));
์ด ๋ถ๋ถ์ ์ฐพ์๋ณด๋ ค๊ณ ๊ตฌ๊ธ๋ง์ ์์ฒญํ๋๋ฐ, ๋ค๋ค body:์ ๋์ ํ๋๊ฑฐ๋ง ์์ด์ container๋ ๋ค๋ฅธ widget์๋ ์ด๋ป๊ฒ ๋์ ํด์ผํ๋๊ฑธ๊น?๋ผ๋ฉฐ ๊ณ ๋ฏผ์ ์ง์ง ๋ง์ด ํ์๋ค. ๊ฒฐ๋ก ์ ์ผ๋ก๋ ๋ณ๊ฒ ์์๋ค. Row ์์ widget๋ถ๋ถ์ ๋ญ ๋ฃ์ ์ ์์๊นํ์ ๋ Container์ ์๊ฐํ๊ณ , ๊ทธ ์์ child๋ก ๋ฃ์ด์คฌ๋ค.
icons.dart
class iconList extends StatefulWidget {
@override
_iconState createState() => _iconState();
}
class _iconState extends State<iconList> {
final List<String> iconsArr = <String>[
'icons/picture_cnt.svg',
'icons/like_cnt.svg',
'icons/comment_cnt.svg',
];
@override
Widget build(BuildContext context) {
return Container(
width: 110,
height: 20,
margin: EdgeInsets.all(10),
child: ListView.builder(
scrollDirection: Axis.horizontal,
shrinkWrap: true,
itemCount: iconsArr.length,
itemBuilder: (context, index) {
return Container(
margin: EdgeInsets.only(right: 10),
child: Row(children: <Widget>[
SvgPicture.asset('${iconsArr[index]}', width: 20),
Text('2')
]));
}));
}
}
โพ statefulWidget์ ์ฒ์ ๋ง๋ค์ด๋ด์ ์์ง ์ต์ํ์ง๋ ์์๋ฐ, state๊ฐ ํ์ํ๊ณ ๋ฐ๋ณตํ ๋ฐฐ์ด๋ ํ์ํ๋ค. ๋๋ ์์ด์ฝ ๊ฒฝ๋ก๋ฅผ ๋ฃ์ด์ค ๊ฒ์ด๋ผ์ String์ผ๋ก ์ ์ธํด์ ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค์ด์คฌ๋ค.
โพ ListView.builder๋ฅผ ํ๋ฉด ๋ํดํธ๊ฐ์ด vertical์ด๋ผ์ ๊ฐ๋ก๋ก ์ ๋ ฌํด์ค์ผํด์ scrollDirection์ Axis.horizontal์ ๋ฃ์ด์คฌ๋ค.
โพ itemCount๋ ๋ฐ๋ณต๋๋ ํ์๋ฅผ ๋ํ๋ด๋ ๊ฑฐ๋ผ์ ๋ฐ๋ณต๋์ด์ผ ํ ๋ฆฌ์คํธ์ ๊ธธ์ด๊ฐ์ ๋ฃ์ด์คฌ๋ค.
'๊ฐ๋ฐ > Flutter' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ฌํฐ/firebase] signup ๊ธฐ๋ฅ ๊ตฌํํ๊ธฐ (0) | 2022.06.21 |
---|---|
[Flutter] ์๋ก์ด ํ๋ฉด์ผ๋ก ์ด๋ํ๊ณ , ๋๋์๊ฐ๊ธฐ - ํ์ด์ง ์ด๋ (0) | 2022.05.16 |
[Flutter/ํ๋ฌํฐ] BuildContext ๋? (0) | 2022.04.06 |
[Flutter/ํ๋ฌํฐ] Drawer menu ๋ง๋ค๊ธฐ! (0) | 2022.04.06 |
[ํ๋ฌํฐ] app bar์ ๋ฉ๋ด ์์ด์ฝ ๋ฃ๊ธฐ (0) | 2022.04.05 |