โช ์์ฑ ํ ๋ ์ด์์ ์ ๋ ์ด์์์ ๋ง๋ค์ด์ผํ๋๋ฐ, ์ ์ฒด์ ์ผ๋ก ๊ฐ์ผ Container ๊ฐ ์๊ณ , ๊ทธ ์์ Column๋ก ํ๋ฒ ๋ ๊ฐ์ธ๊ณ , ๊ฐ ๋ ์ด์์์ ๋ง๋ค๊ธฐ ์ํด์ ์ค๊ณ ๊ณํ์ ์ธ์ ๋ค. Column( children: [ 1. Container - ํ๊ต ์ด๋ฉ์ผ์ด๋ผ๋ Text๋ฅผ ์ธ ๊ฒ 2. Row - TextFormField(์ด๋ฉ์ผ input) , OutlinedButton(์ธ์ฆํ๊ธฐ) 3. SizedBox - input ์ฌ์ด์ ๊ฐ๊ฒฉ์ ์ํด์ 4. TextFormField - ์ธ์ฆ๋ฒํธ ์
๋ ฅ input 5. OutlinedButton - ๋ค์ ๋ฒํผ ] ) โช ๋ฌธ์ ๋ฐ์ 1์ ํ๊ณ 2๋ฒ์ผ๋ก ๋์ด๊ฐ ๋ ์ฐ์ Row๋ฅผ ์ ์ฐ๊ณ , TextFormField๋ฅผ ๋จผ์ ์ผ๋๋ฐ ํ๋ฉด์ ์ถ๋ ฅ์ด ์ ๋๋๊ฑฐ๋ค! ์ด ์ ์ ์ ํ๋ฒ ..
ํ๋ฌํฐ
ํ๋ฌํฐ์์๋ route๋ผ๋ ๊ฐ๋
์ผ๋ก ํ์ด์ง ์ด๋์ด ๊ฐ๋ฅํฉ๋๋ค. ์ด ๋ ์ด๋ํ ๊ณณ์ page๋ผ๊ณ ์๊ฐํด์ฃผ๋ฉด ๋ฉ๋๋ค. ๊ตณ์ด ํ์ผ์ ๋ฐ๋ก ๋๋์ง ์์๋ ๊ฐ์ ํ์ผ ์์์ page๋ง ๋๋ ์ฃผ๋ฉด ๋ฉ๋๋ค. ์ฐธ ์ฝ์ฃต? ๐ ์ด๋ ํ ๋ ์ฐ๋ ๊ฒ์ผ๋ก๋ Navagator ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์๋ฉด ๋ฉ๋๋ค. main.dart Container( margin: EdgeInsets.only(top: 100, left: 0), width: 100, child: IconButton( icon: Text('Signup', style: TextStyle(fontSize: 20),), onPressed: (){ Navigator.push(context, MaterialPageRoute(builder: (context) => SignUpPage(..
๋ฐ๋ณต๋๋ ๋ถ๋ถ์ ์์ ์ฐ์ง ์๊ณ ๋ฐ๋ณตํด์ ๋ง๋ค ์ ์๋ค. ์ด ๋ ์ธ ์ ์๋ ๊ฒ์ด 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: [ Text( '${majorList[index]}', style: T..
ListView.builder์ ์ฌ์ฉํด์ ๊ตฌํํ๋ค๊ฐ ๋ณธ ๋ง์ฃผํ ์๋ฌ์ด๋ค. ๋ฆฌ์คํธ๋ฅผ 5๊ฐ ์ ๋๋ฅผ ๋ง๋ค์ด์ ๋ฐ๋ณต์์ผฐ๋๋ฐ ์๋ฎฌ๋ ์ดํฐ ํ๋ฉด์ ๋
ธ๋ ๋ฐํ์ ์์ ๊ฐ์ ์๋ฌ๊ฐ ๋ฌ๋ค. โพ ํด๊ฒฐ๋ฐฉ์ @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('์์ ์ฒด์กํ๊ณผ'), centerTitle: true, backgroundColor: Colors.white, elevation: 0, leading: IconButton( icon: Icon(Icons.arrow_back), color: Colors.grey, iconSize: 25.0, onPressed: () {}, ), actions: [ Container..
โพ ์์ฑ๋ชจ์ต ์์ ์์ด์ฝ์ ๋ฃ์ด์ ๋ง๋ ๋ฉ๋ด์ ํ๋ฒ๊ฑฐ ๋ฒํผ์ ๋๋ ์ ๋ ์ฌ์ด๋๋ก ์ด๋ฆฌ๋ ๋ฉ๋ด๋ฅผ ๋ง๋ค์์ต๋๋ค! flutter์์๋ drawer์ด๋ผ๋ ๊ฒ์ผ๋ก ์ฝ๊ฒ ๋ง๋ค ์ ๊ฐ ์๋ต๋๋ค! โพ ๊ธฐ๋ณธ ๊ตฌ์ฑ drawer ์ ๋ง๋ค๊ณ , ๊ทธ ์์ ์์ ์์ ฏ(child)์ผ๋ก ListView๋ฅผ ๋ง๋ค์ด์ค๋๋ค. ๊ทธ ์์ ์์ ฏ ์์ ๋ ๋ค๋ฅธ ํ์ ์์ ฏ(children)์ ์์ฑํด์ค๋๋ค. ListView๋ ๋๊ฐ์ง๋ก ๊ตฌ์ฑ์ด ๋ฉ๋๋ค. ์ผ๋จ Header๋ถ๋ถ์์ ๊ณ์ ์ด๋ฆ, ํ๋กํ ์ฌ์ง ๋ฑ์ ๋ฃ์ด์ฃผ๊ณ , ๋ค๋ฅธ ํ์ด์ง๋ก ๋์ด๊ฐ ์ ์๋ ๋ฉ๋ด๋ฅผ ListTile์ด๋ผ๋ ์ด๋ฆ ์๋ ์์ฑํด์ค๋๋ค ListTile๊ตฌ์ฑ์ ๋ณด์๋ฉด onTap์ด ์๋๋ฐ, ์ด ๋ถ๋ถ์ ๋์ค์ ๊ฐ๋ฉด ๋ ๊น๊ฒ ๊ณต๋ถํ ์์ ์ด์ง๋ง ๊ฐ๋จํ๊ฒ onPressed์ ๋น๊ตํด๋ณด์๋ฉด onPressed๋..
โพ ์์ฑ ๋ชจ์ต โพ code class Grade extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( backgroundColor: Colors.amber[800], appBar: AppBar( title: Text('BBANTO'), centerTitle: true, backgroundColor: Colors.amber[700], elevation: 0.0, //left side leading: IconButton( icon: Icon(Icons.menu), onPressed: () { print('menu button is clicked'); }, ), actions: [ IconButton( ..
1. Flutter์์ ์์ ฏ์ด๋? UI๋ฅผ ๋ง๋ค๊ณ ๊ตฌ์ฑํ๋ ๋ชจ๋ ๊ธฐ๋ณธ ๋จ์ ์์๋ฅผ ์์ ฏ์ด๋ผ๊ณ ํฉ๋๋ค. ๋์ ๋ณด์ด๋ ์์๋ฟ๋ง ์๋๋ผ ๋ณด์ด์ง ์๋ ์์๋ค๊น์ง๋ ์์ ฏ์ด๋ผ๊ณ ํฉ๋๋ค. ํ๋ง๋๋ก Eveything is Widget. 2. ์์ ฏ ํ์
Stateless widget ์ํ๊ฐ ์๋ ์ ์ ์ธ ์์ ฏ์ ๋ปํฉ๋๋ค. ์คํฌ๋ฆฐ์์ ์กด์ฌ๋ ํ์ง๋ง ์๋ฌด๊ฒ๋ ๊ฐ์ง์ง ์๊ณ , ์ค์๊ฐ ๋ฐ์ดํฐ ์ ์ฅ์ ๋ชปํ๋ ์์ ฏ์
๋๋ค. ์ด๋ ํ ์ํฑ๋ฅผ ์ ๋ฐํ๋ value ๊ฐ๋ ๊ฐ์ง์ง ์๊ณ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด์ image, text Stateful widget ์ด๋ค ์ํ๋ฅผ ๊ฐ์ง๊ณ ๊ณ์ ์์ง์์ด๋ ๋ณํ๊ฐ ์๋ ์์ ฏ ์ฌ์ฉ์ ์ธํฐ๋์
์ ๋ฐ๋ผ์ ๋ฌ๋ผ์ง๋ ์์ ฏ์
๋๋ค. ์๋ฅผ ๋ค๋ฉด input, checkbox 3. ์์ ฏ ๊ตฌ์ฑ(ํธ๋ฆฌ) ์์ ์ค๋ช
์ฒ๋ผ ๋ง์ ์์๋ค์ด ์..