如何解决Flutter Page View处理孩子,如何保持孩子和集团
我具有下一个代码结构,并且每当我滑动到下一页时,pageview都会破坏previos页面(widget和bloc)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 的
子代是一个 StatefullWidget ,而 StatefullWidget 的状态是通过
示例:
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,onTapDatePicker: onTapDatePicker,onTapFilter: onTapFilter),preferredSize: Size.fromHeight(128)),),body: Builder(
builder: (context) {
//.....
}
),);
}
@override
bool get wantKeepAlive => true;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。