appBar를 다른 파일로 정리하기 위해 사용했다!
class BogoAppbar extends StatefulWidget with PreferredSizeWidget {
BogoAppbar({
Key? key,
required this.title,
this.numberKey,
}) : super(key: key);
final String title;
// dynamic controller;
int? numberKey;
Size get preferredSize => Size.fromHeight(52);
// 무조건 있어야함!
State<BogoAppbar> createState() => _BogoAppbarState();
}
class _BogoAppbarState extends State<BogoAppbar> {
Widget build(BuildContext context) {
String _searchtext;
if (widget.numberKey == 1) {
return AppBar(
// centerTitle: true,
leading: null,
elevation: 0,
title: Text(
widget.title,
style: TextStyle(
color: BogoColor.bogoWhite, fontWeight: FontWeight.bold),
),
actions: [],
);
} else if (widget.numberKey == 2) {
return AppBar(
// centerTitle: true,
leading: null,
elevation: 0,
title: Text(
widget.title,
style: TextStyle(
color: BogoColor.bogoWhite, fontWeight: FontWeight.bold),
),
actions: [
TextButton(
child: Text(
"로그아웃",
style: TextStyle(
color: Colors.white,
),
),
onPressed: () {
// 로그아웃
context.read<AuthService>().signOut();
// 로그인 페이지로 이동
Navigator.pushReplacement(
context,
MaterialPageRoute(builder: (context) => LoginPage()),
);
},
),
],
);
} else if (widget.numberKey == 3) {
return AppBar(
// centerTitle: true,
leading: null,
elevation: 0,
title: Text(
widget.title,
style: TextStyle(
color: BogoColor.bogoWhite, fontWeight: FontWeight.bold),
),
actions: [
TextButton(
child: Text(
"로그아웃",
style: TextStyle(
color: Colors.white,
),
),
onPressed: () {
// 로그아웃
context.read<AuthService>().signOut();
// 로그인 페이지로 이동
Navigator.pushReplacement(
context,
MaterialPageRoute(builder: (context) => LoginPage()),
);
},
),
],
);
}
}
}
안녕하세요! 혹시 앱바 파일을 함수가 아닌 클래스로 작성하는 이유가 있을까요?? 플러터 공부 중이라 궁금해서 질문 드립니다!