Я использую это как обходной путь.
Обычная вкладка:
Widget regularTab = Tab(
icon: Icon(Icons.widgets),
text: AppLocalizations.of(context).regularTab,
);
Вкладка, которая не изменит индекс при нажатии (или выполнит любое другое ваше собственное действие):
Widget disabledTab = Material(
child: InkWell(
child: Container(
child: regularTab,
width: double.infinity,
),
onTap: () {
print('${DateTime.now()} tapped');
},
),
color: Colors.transparent,
textStyle: Theme.of(context).primaryTextTheme.body2,
);