Я работал с BottomNavigationBar во флаттере, но я не могу программно выбрать вкладку за пределами обратного вызова onTap для BottomNavigationBar.
Код с обратным вызовом onTap, который работает:
return new BottomNavigationBar(
items: <BottomNavigationBarItem>[
_bottomNavigationItem(Icons.account_circle, DrawerTitles.CONTACTS),
_bottomNavigationItem(Icons.delete, DrawerTitles.DELETED_CONTACTS),
_bottomNavigationItem(Icons.list, DrawerTitles.LOGS),
],
onTap: (int index) {
setState(() {
navigationIndex = index;
switch (navigationIndex) {
case 0:
handleBottomNavigationBarClicks(DrawerTitles.CONTACTS);
break;
case 1:
handleBottomNavigationBarClicks(DrawerTitles.DELETED_CONTACTS);
break;
case 2:
handleBottomNavigationBarClicks(DrawerTitles.LOGS);
break;
}
});
},
currentIndex: navigationIndex,
fixedColor: Colors.blue[400],
type: BottomNavigationBarType.fixed,
);
Но я хочу изменить вкладки вне обратного вызова onTap.
Я попытался изменить индекс, используемый BottomNavigatioBar вне onTap callBack, но это не сработало.
Вот что я пробовал:
void changeTabs(int tabIndex) {
setState(() {
navigationIndex = tabIndex;
});}
Вот суть кода.
Есть ли способ изменить вкладки?