νλ¬ν° μ±νλ‘κ·Έλλ° Day7
μ§λ μκ°μλ κ³μ°κΈ°λ₯Ό λ§λ€μ΄ λ΄€μλ€.
μ΄λ²μλ 'ν(tab)' μ λν΄ μμλ³Ό κ²μ΄λ€.
μ°λ¦¬κ° λ³΄ν΅ μΈμ€νκ·Έλ¨μ΄λ, μΉ΄μΉ΄μ€ν‘μμ μμ£Ό λ§μ΄ μ¬μ©νλ νλ°λ₯Ό μκ³ μλ€λ©΄
κΈ°λ₯ μ΄ν΄μ λν΄μλ μ‘°κΈ μ½κ² μ κ·Όν μ μλ€.
κ° νλ©΄μ νμΌλ‘ μ°κ²°ν νλ°λ₯Ό μ΄μ©νλ©΄ κ΄λ ¨ μλ λ΄μ©λΌλ¦¬ λ¬Άμ μ μλ€.
λ©μΈνλ©΄μμ νμ λλ¬ νλ©΄μ μ΄λν μ μκΈ° λλ¬Έμ μ’ λ μ§κ΄μ μΈ μ±μ λ§λ€ μ μλ€.
μ¬λ¬ νμ΄μ§ λ§λ€κ³ μ΄λνκΈ°
μ°μ , μ¬λ¬ νλ©΄μ λ§λ€κ³ κ° νλ©΄μ νλ°μ μ°κ²°ν΄ μ¬μ©μκ° νμ λλ μ λ νλ©΄μΌλ‘ μ΄λνλ μ±μ ꡬνν΄λ³΄κ² λ€.
λͺ¨λ°μΌ μ± κ°λ°μμλ μ΄λ₯Ό λ΄λΉκ²μ΄μ (navigation)μ΄λΌκ³ νλ€.
λ΄λΉκ²μ΄μ μ λ€μ ν¬μ€ν λ λ€λ€λ³΄κ³ μ€λμ νλ°λ₯Ό μ΄μ©ν΄λ³΄κ² λ€.
class FirstApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
child: Center(
child: Text("First Page"),
),
),
);
}
}
sub ν΄λμ secondPage.dartλ₯Ό λ§λ€κ³ μμ μ½λμ λκ°μ΄ Textλ§ λ³κ²½ν΄ SecondApp ν΄λμ€λ₯Ό μμ±νλ€.
νλ° μμ ―μ μ¬μ©νλ €λ©΄ ν 컨νΈλ‘€λ¬κ° νμνλ€.
main.dartμμ _MyHomePageState ν΄λμ€λ₯Ό μλμ κ°μ΄ μμ νλ€.
with ν€μλλ₯Ό μΆκ°νκ³ SingleTickerProviderStateMixin ν΄λμ€λ₯Ό μ§μ ν΄μΌ vsync:thisμ μ€λ₯κ° μ¬λΌμ§λ€.
class _MyHomePageState extends State<MyHomePage>
with SingleTickerProviderStateMixin {
TabController? controller;
@override
void initState() {
super.initState();
controller = TabController(length: 2, vsync: this);
// length : λͺ κ°μ νμ λ§λ€ μ§ μ ν¨
// vsync : νμ΄ μ΄λν λ νΈμΆλλ μ½λ°± ν¨μλ₯Ό μ΄λμ μ²λ¦¬ν μ§ κ²°μ
}
}
ν 컨νΈλ‘€λ¬λ μ λλ©μ΄μ μ μ΄μ©νκΈ° λλ¬Έμ dispose() ν¨μλ₯Ό νΈμΆν΄μ€μΌ
λ©λͺ¨λ¦¬ λμλ₯Ό λ§μ μ μλ€.
_MyHomePageState() ν΄λμ€μ μλ μ¬μ μ μ½λλ₯Ό μΆκ°ν΄μ€λ€.
'''
@override
void dispose() {
controller!.dispose();
super.dispose();
}
'''
μ΄μ νλ©΄ ꡬμ±μ ν΄λ³΄κ² λ€.
μ€μΊν΄λλ‘ appBarμ body κ·Έλ¦¬κ³ bottomNavigationμ μ μΈνλ€.
bodyμλ TabBarView μμ ―μ, bottomNavigationμλ TabBar μμ ―μ λ§λ λ€.
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('TabBar Example'),
),
body: TabBarView(
children: <Widget>[FirstApp(), SecondApp()],
controller: controller,
),
bottomNavigationBar: TabBar(tabs: <Tab>[
Tab(icon: Icon(Icons.looks_one, color: Colors.blue),) ,
Tab(icon: Icon(Icons.looks_two, color: Colors.blue),)
], controller: controller,
)
);
}
'π± Mobile > νλ¬ν° μ±νλ‘κ·Έλλ°' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
νλ¬ν° μ±νλ‘κ·Έλλ° Day6 (0) | 2023.01.08 |
---|---|
νλ¬ν° μ±νλ‘κ·Έλλ° Day5 (0) | 2023.01.07 |
νλ¬ν° μ±νλ‘κ·Έλλ° Day4 (0) | 2023.01.06 |
νλ¬ν° μ±νλ‘κ·Έλλ° Day3 (0) | 2023.01.03 |
νλ¬ν° μ±νλ‘κ·Έλλ° Day2 (0) | 2023.01.02 |