Flutter页面视图处理孩子,如何保持孩子和集团



我有下一个代码结构,当我滑动到下一页时,任何时候都可以查看发行版的前一页(小部件和区块(
home: SafeArea( child: PageView(controller: _pageController, children: [ Scaffold( body: BlocProvider<Bloc>( bloc: bloc, child: Container()), Scaffold( body: BlocProvider<Bloc>( bloc: bloc, child: Container()) Scaffold( body: BlocProvider<Bloc>( bloc: bloc, child: Container())))当页面视图更改页面时,如何使用小部件保存bloc类?

PageView的子级需要一个StatefullWidgetStatefullWidget的状态通过AutomaticKeepAliveClientMixin添加

示例

class _SearchPageState extends State<SearchPage>
with AutomaticKeepAliveClientMixin {
static const TAG = 'SearchPage';
VoidCallback onTapSort, onTapArea, onTapDatePicker, onTapFilter;
SearchPageFilter searchFilter;
WorkBloc _workBloc;
VoidCallback onReloadPage;
@override
void initState() {
super.initState();
@override
Widget build(BuildContext context) {
super.build(context);
return ChangeNotifierProvider.value(
value: searchFilter,
child: Scaffold(
appBar: AppBar(
title: Text(AppLocalizations.of(context).titleSearchPage),
bottom: PreferredSize(
child: SearchSliverPersistentHeaderDelegate(
onTapSort, onTapArea,
onTapDatePicker: onTapDatePicker,
onTapFilter: onTapFilter),
preferredSize: Size.fromHeight(128)),
),
body: Builder(
builder: (context) {
//.....
}
),
),
);
}
@override
bool get wantKeepAlive => true;
}