프로그래밍 공부 메모/flutter
화면 전환시 TabBarView(커스텀 탭바)위치 시각 효과
jjs815
2022. 12. 4. 17:20
탭으로 화면 전환 시 현재 어느 위치에 있는지 작은 아이콘으로 시각 효과 주기
//! TabPageSelector
import 'package:flutter/material.dart';
List<Widget> widgets = const [
Icon(Icons.home),
Icon(Icons.settings),
Icon(Icons.person),
];
class Widget198 extends StatefulWidget {
const Widget198({Key? key}) : super(key: key);
@override
State<Widget198> createState() => _Widget198State();
}
class _Widget198State extends State<Widget198>
with SingleTickerProviderStateMixin {
late final TabController controller;
int _index = 0;
@override
void initState() {
super.initState();
controller = TabController(
length: widgets.length,
initialIndex: _index,
vsync: this,
);
}
@override
void dispose() {
controller.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Stack(
alignment: Alignment.center,
children: <Widget>[
TabBarView(
controller: controller,
children: widgets,
),
Positioned(
bottom: 40,
child: TabPageSelector(
controller: controller,
color: Colors.black38,
),
),
],
),
floatingActionButton: ButtonBar(
children: [
FloatingActionButton.small(
onPressed: () {
(_index != widgets.length - 1) ? _index++ : _index = 0;
controller.animateTo(_index);
setState(() {});
},
child: const Icon(Icons.navigate_next),
hoverElevation: 0,
elevation: 0,
)
],
),
);
}
}
반응형