flutterlabelbottom-navigation-bar

Flutter BottomNavigationBarItem label variable


Wehn trying to set a vaiable in the "label" of BottomNavigationBarItem it gives an error in label: myVariable. It seems only allows text as "myText". Is there any way force a variable vlaue?

Widget build(BuildContext context) {
String myVariable = "Item1";
return CupertinoTabScaffold(
  tabBar: CupertinoTabBar(
    backgroundColor: Color.fromARGB(255, 0, 0, 0),
    activeColor: Color.fromARGB(255, 255, 255, 255),
    inactiveColor: Color.fromARGB(255, 160, 160, 160),
    items: const <BottomNavigationBarItem>[
      BottomNavigationBarItem(
        icon: Icon(Icons.build_outlined, size: 22),
        **label: myVariable,**
        activeIcon: Icon(Icons.build),
      ),
      BottomNavigationBarItem(
        icon: Icon(Icons.school_outlined, size: 22),
        label: "Item2",
        activeIcon: Icon(Icons.school),
      ),
    ],
  ),
  tabBuilder: (context, index) {
    switch (index) {
      case 0:
        return CupertinoTabView(builder: (context) {
          return CupertinoPageScaffold(
            child: list_maquina_1(),
          );
        });
      case 1:
        return CupertinoTabView(builder: (context) {
          return CupertinoPageScaffold(
            child: courses_page(),
          );
        });
      default:
        return CupertinoTabView(builder: (context) {
          return CupertinoPageScaffold(
            child: list_maquina_1(),
          );
        });
    }
  },
);

}

I tried myVariable.toString() ... but not worked


Solution

  • So your problem is with the following :

    const <BottomNavigationBarItem>
    

    this is not allowing any of the things underneath it to be a variable. If you remove that "const" keyword it should work!

    See this code snippet https://dartpad.dev/?id=bbd3f10c2593f0add04dd770318b33f7