itemClick(int index) {
setState(() {
selectedIdx = index;
tabController!.index = selectedIdx; // this will fix the issue
});
}
Not just updating the selectedIdx state but also setting the index in TabController class:
tabController!.index = selectedIdx