问题描述
@H_404_0@在水平
PageView.builder
中查看每个页面时,我想调用一个垂直的PageView.builder来为每个页面提供其自己的垂直答复列表。最好的方法是什么?
class StageBuilder extends StatelessWidget {
final List<SpeakContent> speakcrafts;
StageBuilder(this.speakcrafts);
final PageController controller = PageController(initialPage: 0);
@override
Widget build(context) {
return PageView.builder(
controller: controller,itemCount: speakcrafts.length,itemBuilder: (context,int currentIndex) {
return createViewItem(speakcrafts[currentIndex],context,currentIndex);
},);
}
Widget createViewItem(SpeakContent speakcraft,BuildContext context,int currentIndex) {
return Scaffold(
body: (some stuff),);
}
}
解决方法
问题是您应该在PageView中放置支架,否则应该在其中放置支架。
请参见下面的示例:
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,home: Scaffold(
body: Padding(
padding: const EdgeInsets.symmetric(vertical: 50,horizontal: 20),child: PageViewDemo(),),);
}
}
class PageViewDemo extends StatefulWidget {
@override
_PageViewDemoState createState() => _PageViewDemoState();
}
class _PageViewDemoState extends State<PageViewDemo> {
PageController _controller = PageController(
initialPage: 0,);
@override
void dispose() {
_controller.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return PageView(
controller: _controller,children: [
MyPage1Widget(),MyPage2Widget(),MyPage3Widget(),],);
}
}