Изменить вкладку в TabBarView
У меня есть TabBarView, одна из вкладок - ListView, мне нужно при клике на элемент ListView менять этот ListView на другой виджет, я написал callback-функцию, она вроде срабатывает - меняет переменную, но почему-то внешне ничего не меняется. В чем может быть мояй ошибка? Заранее спасибо) Класс с TabBarView:
class StationState extends State<Stations> {
Widget secondWidget;
@override
Widget build(BuildContext context) {
secondWidget = Styles(
onStyleTap: () => setState(() {
secondWidget = Favorites();
print('kill me');
print(secondWidget);
}));
return DefaultTabController(
length: 3,
child: Scaffold(
backgroundColor: Color(0xFF000000),
appBar: AppBar(
title: HeaderLogo(),
backgroundColor: Color(0xFF000000),
bottom: TabBar(
indicatorColor: Colors.white,
tabs: [
Tab(
text: 'Favorites',
),
Tab(
text: 'Styles',
),
Tab(
text: 'Networks',
),
],
),
),
body: TabBarView(children: [
Favorites(),
secondWidget,
Networks(),
]),
),
);
} }
Класс с ListView:
class StylesState extends State<Styles> {
final VoidCallback onStyleTap;
StylesState({this.onStyleTap});
@override
Widget build(BuildContext context) {
return Padding(
padding: EdgeInsets.only(top: 10),
child: ListView.builder(
itemCount: stylesList.length,
itemBuilder: (context, position) {
return GestureDetector(
onTap: () => onStyleTap(),
child: Card(
color: Color(0xFF000000),
child: Container(
height: 40,
child: Text(
stylesList[position].title,
style: TextStyle(color: Colors.white, fontSize: 18),
),
),
));
},
),
);
}
}