flutter - 如何在颤动中左右滑动时停止PageView重建
问题描述
我想在左右滑动上停止 PageView 重建。基本上我在这个 PageView 中有 1 个带水平轴的 PageView 我还有一个带垂直轴的 PageView。
在 1 Pageview 我只有 2 个孩子,但在第二个 PageView 我有基于 http 请求的孩子。
问题:当用户将 1 PageView 向右然后向左滚动时,1 PageView 会重建第二个 Pageview 子项并将页面索引自动设置为 0。
期望:只是我想在用户从左向右滚动时停止重建 1 PageView 然后将 1 PageView 停止到正确的位置并忽略设置位置 0。
页面视图示例
return PageView(
scrollDirection: Axis.horizontal,
allowImplicitScrolling: false,
controller: _main_pageController,
children: [
PageView(
controller: _pageController,
scrollDirection: Axis.vertical,
children: [
for(int index = 0; index < complexTutorial.data.length;index++)
COntainer(color:Colors.yellow),
],),
// below is second child of 1 PageView.
Container(child:Text("USER SETTING")),
],);
请帮助解决这个问题我是新来的颤振谢谢。
解决方案
将容器放在 StateFulWidget 中,然后使用AutomaticKeepAliveClientMixin
并覆盖 StateFulWidget 中的方法 'wantKeepAlive'
class YourStateFulWidget extends StatefulWidget with AutomaticKeepAliveClientMixin{
@override
_YourStateFulWidgetState createState() => _YourStateFulWidgetState();
}
class _YourStateFulWidgetState extends State<YourStateFulWidget> {
@override
Widget build(BuildContext context) {
return Container(
child: Text("USER SETTING")
);
}
@override
bool get wantKeepAlive => keepAlive;
}
推荐阅读
- aws-lambda - 使用云形成实现时,如何将参数从我的网站(在 Javascript 中)传递给我的亚马逊机器人?
- linux - 为什么即使找到了 Qt 平台插件“xcb”也无法加载?
- wordpress - WP 媒体库从主题仪表板上传图像
- python - 如何定义(x,y)坐标的二维数组
- powershell - 撤销本地管理员但不是域管理员
- javascript - 模块根据需求从数据库加载数据
- angular - Angular:从另一个创建一个 Observable 列表并检索它
- javascript - Sequelize 迁移给出“错误:无法添加外键约束”
- python-3.x - 来自 Active Directory 的 Python ldap3 缩略图
- angular - 使用 canActivate 确定显示链接