颤振:使用后退按钮功能设置选项卡索引,就像在带有底部导航栏的推特中一样?



是否可以使用OnWillpopScope像Twitter应用程序一样,当您按回去时在不同的选项卡中,它会返回主页或tabindex获取或设置为零。

是的,可以使用 TabController 来完成。它有一个方法animateTo()可用于 WillPopScope 小部件的onWillPop回调。

下面是一个示例实现

class HomePage extends StatefulWidget {
@override
HomePageState createState() {
return new HomePageState();
}
}
class HomePageState extends State<HomePage>
with SingleTickerProviderStateMixin {
List<Widget> _tabs = <Widget>[
Icon(Icons.directions_car),
Icon(Icons.directions_transit),
Icon(Icons.directions_bike),
];
TabController _tabController;
initState() {
super.initState();
_tabController = TabController(length: _tabs.length, vsync: this);
}
@override  
dispose(){
_tabController.dispose();
super.dispose();

}
@override
Widget build(BuildContext context) {
return WillPopScope(
onWillPop: () {
_tabController.animateTo(0);
},
child: Scaffold(
appBar: AppBar(
bottom: TabBar(
controller: _tabController,
tabs: [
Tab(icon: Icon(Icons.directions_car)),
Tab(icon: Icon(Icons.directions_transit)),
Tab(icon: Icon(Icons.directions_bike)),
],
),
title: Text('Tabs Demo'),
),
body: TabBarView(
controller: _tabController,
children: _tabs.toList(),
),
),
);
}
}

最新更新