๋ณธ๊ฒฉ์ ์ผ๋ก ๊ฐ๋ฐ์ ์ํด UI ๊ตฌ์กฐ๋ถํฐ ์๊ฐํด๋ณด์.
ํฌ๊ฒ ์ด๋ฒคํธํ์ด์ง ํญ, ํญ๊ณต๊ถ ๊ฒ์ ํญ 2๊ฐ์ง๋ก ๋๋ ์ ๋ณด์ฌ์ฃผ๋ฉด ๋ ๊ฒ ๊ฐ๋ค.
์ด๋ฒ์๋ ์ผ๋จ ํ๋ฌํฐ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ฅผ ์ตํ๊ณ , ํญ ๊ตฌ๋ถ๊น์ง ๊ตฌํํด ๋ณผ ์์ ์ด๋ค.
์ฝ๋ ๋ถ๋ถ์ผ๋ก ๋ค์ด๊ฐ์ main.dart ํ์ผ์ ๋ณด๋ฉด ์ฌ๋ฌ ํด๋์ค๊ฐ ์๋๋ฐ, '์์ ฏ' ๋จ์๋ก ํด๋์ค๋ฅผ ์ ์ํ๋ค๊ณ ํ๋ค.
๋ค๋ฅธ ์ธ์ด๋ค๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก main() ํจ์๊ฐ ์์์ ์ด ๋๊ณ ,
๊ฐ ํด๋์ค์ ๋ํด ์ค๋ช ํ๋ฉด
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'ํญ๊ณต๊ถ ๊ฐ๊ฒฉ ๋น๊ต',
theme: ThemeData(primarySwatch: Colors.blue),
home: const MainTabPage(),
);
}
}
MyApp ํด๋์ค(์ด๋ฆ์ ์์๋ก ์ค์ )๋ ์ฑ์ ์ต์์ ์ค์ ์ ๋ด๋นํ๋ค.
๋ด๋ถ์ build ํจ์๋ ์์ ฏ์ด ๋ฌด์์ ๊ทธ๋ฆด์ง ์ค๋ช
ํ๋ ํจ์์ด๋ค.
ํ๋ฌํฐ๋ build ํจ์๊ฐ ๋ฐํํ ์์ ฏ์ ์ฝ์ด ์ค์ ํ๋ฉด์ ๊ทธ๋ฆฐ๋ค.
๋ชจ๋ ์์ ฏ์ build๋ฅผ ๊ฐ์ง๊ณ , ์ฌ๊ท์ ์ผ๋ก ํธ์ถ๋๋ค. (ํธ๋ฆฌ์ฒ๋ผ)
๊ทธ๋ฆฌ๊ณ ๋ฐํํ๋ MaterialApp ํด๋์ค๋ ์์, ํฐํธ, ์คํ์ผ๋ฑ์ ์ธํ
ํด์ฃผ๋ ํ๋ฌํฐ ๋ด๋ถ ํด๋์ค์ด๋ค. (์ด๊ฒ๋ ์์ ฏ)
์ฑ ์ด๋ฆ, ์ฑ ์ ์ฒด ์คํ์ผ, ์์ ํ์ด์ง๋ฅผ ์ ์ํ ๋ชจ์ต์ด๋ค.
class MainTabPage extends StatelessWidget {
const MainTabPage({super.key});
@override
Widget build(BuildContext context) {
return DefaultTabController(
length: 2,
child: Scaffold(
appBar: AppBar(
title: const Text('ํญ๊ณต๊ถ ๊ฐ๊ฒฉ ๋น๊ต'),
bottom: const TabBar(
tabs: [ Tab(text: '์ด๋ฒคํธ'), Tab(text: 'ํญ๊ณต๊ถ ๊ฒ์')],
),
),
body: const TabBarView(
physics: NeverScrollableScrollPhysics(),
children: [ EventPage(), SearchPage() ],
),
),
);
}
}
์ด์ ์์ ํ์ด์ง๊ฐ ๋ MainTabPage๋ฅผ ๋ณด์.
์ด๋ฒ์ DefaultTabController ์์ ฏ์ ๋ฐํํ๋๋ฐ, ์ด ์์ ฏ์ ํญ ์ํ๋ฅผ ๊ด๋ฆฌํ๋ ์์ ฏ์ผ๋ก ๋ง๊ทธ๋๋ก ํญ์ ์ปจํธ๋กค๋ฌ ์ญํ ์ ํ๋ค.
๋งค๊ฐ๋ณ์๋ก๋ length : ํญ ๊ฐ์, child : ์ด ์ปจํธ๋กค๋ฌ๋ฅผ ์ ์ฉํ ์์ ฏ ํธ๋ฆฌ ๊ฐ ์๊ณ
child์๋ Scaffold ํด๋์ค๊ฐ ๋ค์ด๊ฐ๋ค.
Scaffold๋ ํ๋ฉด์ ๋ผ๋๋ฅผ ์ก๋ ์ญํ ์ ํ๋ ์์ ฏ์ด๋ค.
์ค์ ๋ก ๋ด๋ถ๋ฅผ ๋ณด๋ฉด
appBar(์๋จ๋ฐ)์ ์ฌ์ฉํ ํญ์ ์ ์ํ๊ณ , body(๋ฐ ์๋)์ TabBarView ์์ ฏ์ ๋ฃ์๋ค.
TabBarView๋ ํญ์ ๋ฐ๋ผ ๋ฐ๋๋ ๋ณธ๋ฌธ ์์ญ์ผ๋ก ์ฌ์ฉํ ํ์ด์ง ์์ ฏ 2๊ฐ๋ฅผ ๋ฃ์๋ค.
(NeverScrollableScrollPhysics๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ค์์ดํ๋ก ํญ์ ๋ฐ๊ฟ ์ ์๋๋ฐ, ๋ด ์ฑ์ ๊ฒฝ์ฐ ์๋์น ์๊ฒ ํญ์ด ๋ณ๊ฒฝ๋ ์๋ ์์ ๊ฒ ๊ฐ์ ๋นํ์ฑํํ์๋ค)
์ด์ ๋ถํฐ ๊ฐ ํ์ด์ง๋ค(EventPage, SearchPage)์ ์ค์ ๋ด์ฉ์ ๊ตฌํํ๋ฉด ๋๋ค!
