Flutter 颤振:如何在CupertinoTabBar中显示徽章并根据用户输入更新值
我有一个CupertinoApp和一个Cupertinobstaffold,一个Cupertinobbar和一系列底部导航栏。我设法在一个BottomNavigationBarItem(篮子选项卡)中添加了一个徽章。请参阅下面的图片以及我的代码Flutter 颤振:如何在CupertinoTabBar中显示徽章并根据用户输入更新值,flutter,badge,flutter-cupertino,cupertinotabbar,Flutter,Badge,Flutter Cupertino,Cupertinotabbar,我有一个CupertinoApp和一个Cupertinobstaffold,一个Cupertinobbar和一系列底部导航栏。我设法在一个BottomNavigationBarItem(篮子选项卡)中添加了一个徽章。请参阅下面的图片以及我的代码 class\u homescrenstate扩展状态{ @凌驾 小部件构建(构建上下文){ 回程杯( tabBar:CupertinoTabBar( 背景颜色:kColorPrimaryLight, 项目:[ 底部导航气压计( 图标:图标(Cupert
class\u homescrenstate扩展状态{
@凌驾
小部件构建(构建上下文){
回程杯(
tabBar:CupertinoTabBar(
背景颜色:kColorPrimaryLight,
项目:[
底部导航气压计(
图标:图标(CupertinoIcons.search),
标题:文本(“发现”),
),
底部导航气压计(
图标:图标(CupertinoIcons.person\u solid),
标题:文本(“账户”),
),
底部导航气压计(
图标:图标(CupertinoIcons.book_solid),
标题:文本(“故事”),
),
底部导航气压计(
图标:徽章(
内容:文本(
appData.basketList.length.toString(),
样式:KDDescriptionTextStyle,
),
子:图标(CupertinoIcons.购物车)),
标题:文本(“篮子”),
),
],
),
现在,我想根据在另一个选项卡中触发的事件更新该徽章文本。我正在将徽章的值存储在一个单例(appData.basketList
)中,并且该信息可用于我的所有屏幕。每次我触发该事件,然后是appData.basketList.length.toString()更改,但我的徽章不会更改。它仅在我热重新加载时更改…因此,我的问题是:如何更新徽章的文本
谢谢
class _HomeScreenState extends State<HomeScreen> {
@override
Widget build(BuildContext context) {
return CupertinoTabScaffold(
tabBar: CupertinoTabBar(
backgroundColor: kColorPrimaryLight,
items: [
BottomNavigationBarItem(
icon: Icon(CupertinoIcons.search),
title: Text('Discover'),
),
BottomNavigationBarItem(
icon: Icon(CupertinoIcons.person_solid),
title: Text('Account'),
),
BottomNavigationBarItem(
icon: Icon(CupertinoIcons.book_solid),
title: Text('Stories'),
),
BottomNavigationBarItem(
icon: Badge(
badgeContent: Text(
appData.basketList.length.toString(),
style: kDescriptionTextStyle,
),
child: Icon(CupertinoIcons.shopping_cart)),
title: Text('Basket'),
),
],
),