Флаттер: как показать значок в CupertinoTabBar и обновить значение на основе пользовательского ввода - PullRequest
0 голосов
/ 28 сентября 2019

У меня есть CupertinoApp с CupertinoTabScaffold, CupertinoTabBar и серией BottomNavigationBarItem (s).Мне удалось добавить значок в один из BottomNavigationBarItem (вкладка корзины).См. Рисунок ниже, а также мой код

enter image description here

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 () изменяется, но мой значок не меняется.Это только изменится, если я сделаю горячую перезагрузку ... вот мой вопрос: как я могу обновить текст моего значка?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...