Я создал свою собственную простую нижнюю навигационную панель в Flutter.Когда вкладка нажата, Flutter в настоящее время воссоздает виджет (initState()
вызывается каждый раз), что нежелательно.
Я хочу, чтобы виджеты были сохранены в памяти, поэтому, если они уже были созданы, они просто вставляются прямо.
Основной виджет
class _MainRootScreenState extends State<MainRootScreen> {
int _selectedIndex = 0;
List<Widget> _screens;
@override
void initState() {
// load pages
_screens = [
PageOne(),
PageTwo(),
PageThree()
];
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: _screens[_selectedIndex],
bottomNavigationBar: _buildBottomTabBar(context)
);
}
}
, поэтому, когда _selectedIndex
обновляется, выбранная страница воссоздается.
Я пытался использовать AutomaticKeepAliveClientMixin
на страницах безуспешно.