Flutter:在PageView.builder中创建页面小部件作为列表大小的数目

问题描述 投票:0回答:2

我正在尝试在视图分页器中创建一个与我对象列表中的项目数一样多的页面:

class WebViewPagerBuilder extends StatelessWidget {
  final dynamic result;
  const WebViewPagerBuilder({this.result});
  @override
  Widget build(BuildContext context) {
    ProductNeedConfigModel items = result["Data"] as ProductNeedConfigModel;
    return Scaffold(
      body: PageView.builder(
        itemCount: result["Data"].data.length,
        itemBuilder: (contex, index){
          [
           ...items.data.map((item){
             return ConfigWebViewScreen(result);
           })
          ];
        }
      ),
    );
  }
}

在ConfigWebViewScreen类内部,我具有webview,但是我的代码不起作用并且webview不显示?

*********编辑*****************]

如果我将构建器更改为此:

  body: PageView.builder(
      itemCount: items.data.length,
      itemBuilder: (contex, index) => 
          ...items.data.map((item) {
            return ConfigWebViewScreen(result);
          }).toList()
      ),

读取行出现在...items部分下,并显示此错误:

Positional arguments must occur before named arguments.
Try moving all of the positional arguments before the named arguments.
flutter flutter-layout
2个回答
0
投票

我认为您在itemBuilder中缺少退货

itemBuilder: (contex, index){
      return [
       ...items.data.map((item){
         return ConfigWebViewScreen(result);
       })
      ];
    }

由于您未使用itemBuilder索引,因此应尝试执行以下操作:

body: PageView(
      children: [
       ...items.data.map((item){
         return ConfigWebViewScreen(result);
       })
      ],
  ),

0
投票

尝试一下,

body: PageView.builder(
      itemCount: items.data.length,
      itemBuilder: (contex, index) => ConfigWebViewScreen(items.data[index]),
        ),
      ),
© www.soinside.com 2019 - 2024. All rights reserved.