我用 DefaultTabController 实现了一个基本的 TabBar 和 TabBarView,见下面的代码。
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方法。对我来说,这似乎是一个相当大的改变,只是为了改变动画。 我想知道这是否是正确的方法,或者我是否缺少一些更简单的方法来更改选项卡视图之间的默认动画?
如果有人能给我一些很好的资源来为我指明正确的方向,我将不胜感激。