gpt4 book ai didi

dart - 有没有办法在 DefaultTabController 中添加监听器?

转载 作者:行者123 更新时间:2023-12-03 21:27:41 25 4
gpt4 key购买 nike

我一直在尝试在使用 DefaultTabController 时添加监听器.但是,每次我添加一个TabController为了在 TabBar 中获取当前索引和 TabBarView ,我失去了它们之间的同步。

这是我的代码如下:

  @override
Widget build(BuildContext context) {
return new DefaultTabController(
length: subPages.length,
child: new Scaffold(
appBar: appBar('homepage'),
body: new Center(
child: new NestedScrollView(
headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) {
return <Widget>[
new SliverAppBar(
backgroundColor: Colors.white,
title: new TabBar(
labelColor: Colors.black,
indicatorColor: Colors.black,
labelStyle: new TextStyle(fontWeight: FontWeight.bold),
tabs: subPages.map((String str) => new Tab(text: str)).toList(),
),
),
];
},
body: new TabBarView(
children: subPages.map((String str) {
return new ListView(
padding: const EdgeInsets.symmetric(vertical: 8.0, horizontal: 16.0),
children: subPages.map((String str) {
return new Padding(
padding: const EdgeInsets.symmetric(vertical: 8.0),
child: new Text(str),
);
}).toList(),
);
}).toList(),
),
),
),
floatingActionButton: new FloatingActionButton(
backgroundColor: Colors.black,
onPressed: null,
tooltip: 'Increment',
child: new Icon(Icons.add),
),
),
);
}

最佳答案

我用这个:

new DefaultTabController(
child: Builder(
builder: (context) {

final tabController = DefaultTabController.of(context)!;
tabController.addListener(() {
print("New tab index: ${tabController.index}");
});

return Scaffold(
...
);
}
),
);

关于dart - 有没有办法在 DefaultTabController 中添加监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46862308/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com