커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
2주차 숙제 코드 질문
앱개발 종합반 - 플러터 v8
2주차
북마크
추*연
댓글
4
추천
0
조회수
15
조회수
15
답변 완료

* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.

* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.


TabPageSelector에서 DefaultTabController.of(context).index의 인덱스가 무엇을 의미하는지 모르겠습니다.

page index 번호라고 생각했는데 옆으로 페이지를 넘겨도 컬러가 변하지 않았습니다.

DefaultTabController에서 초기 인덱스를 1이라고 설정했습니다!



스파르타 즉문즉답스파르타 즉문즉답




작성한 코드 및 에러 메세지


class _TabPageState extends State<TabPage> {
  @override
  Widget build(BuildContext context) {
    //동그라미 tab
    return TabPageSelector(
      // color : 선택되지않은 원의 채우기 색상
      // 질문!!
      color: DefaultTabController.of(context).index == 1
          ? Colors.blue[300]
          : Colors.grey[400],
      //selected color : 선택된 원의 채우기 색상
      selectedColor: DefaultTabController.of(context).index == 1
          ? Colors.white
          : Colors.blue,
      indicatorSize: 8, //원의 지름
    );
  }
}


class _HomePageState extends State<HomePage> {
  @override
  Widget build(BuildContext context) {
    return DefaultTabController(
      //TabBar와 TabBarView를 연결하는 역할
      initialIndex: 1, //선택된 탭의 초기 인덱스
      length: 3, //탭의 총 개수
      child: Scaffold(
          body: Stack(
        children: [
          TabBarView(
            children: [
              FristTab(),
              SecondTab(),
              ThirdTab(),
            ],
          ),
          SafeArea(
            //UI가 잘리는 경우 제대로 보여주기 위해 SafeArea로 감싸줌
            child: Padding(
                padding: const EdgeInsets.symmetric(
                  vertical: 20,
                  horizontal: 16,
                ),
                child: Column(
                  children: [
                    Container(
                      alignment: Alignment.topCenter, //tab 중앙 상단 위치
                      child: TabPage(),
                    ),
                  ],
                )),
          )
        ],
      )),
    );
  }
}
취소
 공유
취소
댓글 0
댓글 알림
나의얼굴