Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 颤振:如何在CupertinoTabBar中显示徽章并根据用户输入更新值_Flutter_Badge_Flutter Cupertino_Cupertinotabbar - Fatal编程技术网

Flutter 颤振:如何在CupertinoTabBar中显示徽章并根据用户输入更新值

Flutter 颤振:如何在CupertinoTabBar中显示徽章并根据用户输入更新值,flutter,badge,flutter-cupertino,cupertinotabbar,Flutter,Badge,Flutter Cupertino,Cupertinotabbar,我有一个CupertinoApp和一个Cupertinobstaffold,一个Cupertinobbar和一系列底部导航栏。我设法在一个BottomNavigationBarItem(篮子选项卡)中添加了一个徽章。请参阅下面的图片以及我的代码 class\u homescrenstate扩展状态{ @凌驾 小部件构建(构建上下文){ 回程杯( tabBar:CupertinoTabBar( 背景颜色:kColorPrimaryLight, 项目:[ 底部导航气压计( 图标:图标(Cupert

我有一个CupertinoApp和一个Cupertinobstaffold,一个Cupertinobbar和一系列底部导航栏。我设法在一个BottomNavigationBarItem(篮子选项卡)中添加了一个徽章。请参阅下面的图片以及我的代码

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'),
          ),
        ],
      ),