获取当前索引,可以看这个链接,涵盖多种方式:
how-to-get-current-tab-index-in-flutter
其中点赞数最多的方式是使用TabController,然而它对我不太适用,因为我的某个需求,选项卡是动态生成的,而TabController初始化需要固定的length。
而其它方法也不太好,我最后用下面新的方式实现:
final GlobalKey<ScaffoldState> _scaffoldKey = new GlobalKey<ScaffoldState>();
List<TabModel> _tabs = []; // 动态选项卡
@override
Widget build(BuildContext context) {
return DefaultTabController(
length: _tabs.length,
child: Scaffold(
key: _scaffoldKey,
...
)
)}
然后利用下面方式获取索引:
DefaultTabController.of(_scaffoldKey.currentState.context).index;