gpt4 book ai didi

Flutter - 如何在 PageView Widget 中的页面之间传递数据?

转载 作者:行者123 更新时间:2023-12-03 02:52:45 25 4
gpt4 key购买 nike

我有一个如下所示的 PageView 小部件:

Widget buildPageView() {
return PageView(
controller: pageController,

onPageChanged: (index) {
pageChanged(index);
},

children: <Widget>[
AddPropertyDescription(pageController: pageController,),
AddPropertyMedia(pageController: pageController),
AddPropertyLocation(pageController: pageController),
AddPropertyDetails(pageController: pageController),
AddPropertyAmenities(pageController: pageController)
],
);
}

我的 PageView 中有五个页面作为小部件,现在我想将数据从一个页面传递到另一个页面,直到页面更改时的最后一页.....

我在每个页面中都使用了 Next 按钮,在 Next 按钮 onTap() 中,我只需增加页码以滑动到下一页,如下所示

 onTap: () async{
pageController.animateToPage(
1,
duration: Duration(milliseconds: 300),
curve: Curves.linear,
);
},

当按下下一个按钮并转到下一个屏幕时,我想携带数据并将其传递到下一页。

这里有没有人可以在 flutter 中遇到同样的问题.....

请指导我如何实现这一目标......

最佳答案

Page 小部件可以获取数据,以及用于传递数据的回调,我将解释我的意思。

buildPageView 应该将额外参数传递给小部件:


int data = 0;

void onDataChange(int newData) {
setState(() => data = newData);
}

Widget buildPageView() {
return PageView(
controller: pageController,

onPageChanged: (index) {
pageChanged(index);
},

children: <Widget>[
AddPropertyDescription(pageController: pageController, data: data, onDataChange: onDataChange),
AddPropertyMedia(pageController: pageController, data: data, onDataChange: onDataChange),
AddPropertyLocation(pageController: pageController, data: data, onDataChange: onDataChange),
AddPropertyDetails(pageController: pageController, data: data, onDataChange: onDataChange),
AddPropertyAmenities(pageController: pageController, data: data, onDataChange: onDataChange)
],
);
}

并且小部件本身应该除了参数:

class MyWidget extends StatelessWidget {
const MyWidget({
@required this.data,
@required this.onDataChange,
Key key,
}) : super(key: key);

final int data;
final Function(int) onDataChange;

@override
Widget build(BuildContext context) {
return FlatButton(
onPressed: () => onDataChange(data + 1),
child: Text(data.toString()),
);
}
}

关于Flutter - 如何在 PageView Widget 中的页面之间传递数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59624237/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com