페이지 나누는 법

간략하게는 두가지 방법

Router Tab 이렇게 있음. 그 중에 Tab을 만들어보려고 한다.

home page와 shop 화면을 같이 만들어 줄 것임.

Tab이라고 하는게… 그냥 내용물 다 만들어놓고 버튼 눌렀을 때, 내가 원하는 내용물만 나오게 만드는 것임

TabBar 라는 것이 있어서 그걸 가져다 써도 되는데 커스터마이징이 어려움.

3Step을 거쳐라

  1. state에 UI 현재상태 저장.
  2. state에 따라서 tab이 어떻게 보일지 작성 (ex, if문, list 안에 쓰기)
  3. 쉽게 state 조작할 수 있게 버튼 만든다든지 하는 것.
// 1. state 만들기
  var tab = 0;
...

// 2. tab에 따른 보여지는 UI 만들기
  body: [Text('홈페이지'), Text('샵페이지')][tab],
...

// 3. onTab 이벤트에 tab 값 변경하는 함수 추가
bottomNavigationBar: BottomNavigationBar(
        showSelectedLabels: false,
        showUnselectedLabels: false,
        onTap: (i){
          setState(() {
            tab = i;
          });
        },
        items:[
          BottomNavigationBarItem(icon: Icon(Icons.home_outlined), label: '홈'),
          BottomNavigationBarItem(icon: Icon(Icons.shopping_bag_outlined), label: '샵'),
        ]
      ),

만약에 Tab 사이에 슬라이드 했을 때 옮겨졌으면 좋겠다면 PageView()라는 애를 쓰면 된다고 함.

숙제

게시물 레이아웃 3개 만들기

Image.network('https://codingapple1.github.io/app/car0.png'),