Я реализовал базовую панель TabBar и TabBarView с помощью DefaultTabController, см. Код ниже.
class MyApp2 extends StatelessWidget {
@override
Widget build(BuildContext context) {
return DefaultTabController(
length: BOTTOM_TABS,
child: Scaffold(
appBar: AppBar(title: const Text('Bottom App Bar')),
body: _tabBarView(),
bottomNavigationBar: _bottomTabBar(),
),
);
}
_tabBarView() {
return TabBarView(
physics: NeverScrollableScrollPhysics(),
children: [
Container(
color: Colors.blue,
),
Container(
color: Colors.orange,
),
Container(
color: Colors.lightGreen,
),
Container(
color: Colors.red,
),
],
);
}
_bottomTabBar() {
return TabBar(
tabs: [
Tab(
icon: new Icon(Icons.home),
),
Tab(
icon: new Icon(Icons.public),
),
Tab(
icon: new Icon(Icons.group),
),
Tab(
icon: new Icon(Icons.person),
)
],
);
}
}
Работает отлично! Теперь я хочу изменить анимацию между двумя вкладками по сравнению с анимацией по умолчанию. Но я не могу найти простого способа сделать это.
После небольшого исследования мне кажется, что мне нужно использовать настраиваемый TabController и каким-то образом использовать его animateTo. Мне кажется, что просто изменить анимацию - это довольно серьезное изменение. Что меня интересует, правильно ли это или мне не хватает более простого способа просто изменить анимацию по умолчанию между представлениями вкладок?
Если бы кто-то мог дать мне хорошие ресурсы, чтобы указать мне правильное направление, я был бы очень признателен.