我有一个带有 CupertinoTabScaffold、CupertinoTabBar 和一系列 BottomNavigationBarItem(s) 的 CupertinoApp。我设法在其中一个 BottomNavigationBarItem(购物篮选项卡)中添加了一个徽章。请参阅下面的图片以及我的代码
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'),
),
],
),
现在,我想根据在另一个选项卡中触发的事件更新该徽章文本。我将徽章的值存储在单例 ( appData.basketList
) 中,并且此信息可用于我的所有屏幕。每次我触发该事件时,appData.basketList.length.toString() 都会更改,但我的徽章不会更改。只有当我热重载时它才会改变......所以这是我的问题:如何更新我的徽章文本?
谢谢 !