Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 颤振:列表视图中的栅格视图_Android_Listview_Gridview_Dart_Flutter - Fatal编程技术网

Android 颤振:列表视图中的栅格视图

Android 颤振:列表视图中的栅格视图,android,listview,gridview,dart,flutter,Android,Listview,Gridview,Dart,Flutter,我试过: ListView.builder( shrinkWrap: true, itemBuilder: (BuildContext context, int index) { return GridView.count( crossAxisCount: 5, children: List.generate(10, (index) { return Center( child: Text( '$index AM', ),

我试过:

ListView.builder(
  shrinkWrap: true,
  itemBuilder: (BuildContext context, int index) {
  return GridView.count(
  crossAxisCount: 5,
  children: List.generate(10, (index) {
    return Center(
      child: Text(
        '$index AM',
      ),
    );
  }),
);
},
itemCount: partnerArr.length,
)
我想在我的脚手架主体中创建这种类型的列表视图,我该怎么做


使用
CustomScrollView

CustomScrollView(
  slivers: List.generate(
      10,
      (item) => SliverGrid(
            gridDelegate: SliverGridDelegateWithMaxCrossAxisExtent(
              maxCrossAxisExtent: 150.0,
              mainAxisSpacing: 10.0,
              crossAxisSpacing: 10.0,
              childAspectRatio: 4.0,
            ),
            delegate: SliverChildBuilderDelegate(
              (BuildContext context, int index) {
                return Container(
                  alignment: Alignment.center,
                  color: Colors.amber[100 * (index % 9)],
                  child: Text('grid item $index'),
                );
              },
              childCount: 6,
            ),
          )),
)
您可以尝试以下代码:

@override
  Widget build(BuildContext context) {
    return Scaffold(
        body: ListView.separated(
      separatorBuilder: (context, int) {
        return Divider(color: Colors.black,);
      },
     // shrinkWrap: true,
      itemBuilder: (BuildContext context, int index) {
        return GridView.count(
          shrinkWrap: true,
          crossAxisCount: 3,
          childAspectRatio: 2.0,
          children: List.generate(6, (index) {
            return Center(
              child: RaisedButton(
                onPressed: (){},
                color: Colors.greenAccent,
                child: Text(
                  '$index AM',
                ),
              ),
            );
          }),
        );
      },
      itemCount: 4,
    ));
  }
输出:

导入“包装:颤振/材料.省道”;
类SubmitRequest扩展StatefulWidget{
@凌驾
状态createState(){
返回_SubmitRequest();
}
}
类_SubmitRequest扩展状态{
@凌驾
小部件构建(构建上下文){
归还新脚手架(
抽屉(
子:容器(
颜色:颜色。黑色54,
子:ListView(
填充:仅限边缘设置(顶部:40.0),
儿童:[
列表砖(
标题:文本(“仪表板”),
),
列表砖(
标题:文本(“提交报告”),
),
列表砖(
标题:文本(“收件箱请求”),
),
],
),
),
),
appBar:appBar(
背景颜色:Colors.blue,
前导:图标按钮(图标:图标(Icons.menu)),按下:({}),
行动:[
//图标按钮(图标:图标(Icons.search),按下:({}),
图标按钮(icon:icon(Icons.help),按下:({}),
],
底部:首选尺寸(
孩子:填充(
填充:LTRB(0.0,0.0,15.0,16.0)中的常量边集,
子:容器(
边距:仅限边缘设置(左:16.0),
孩子:TextField(
装饰:新的输入装饰(
后缀:图标按钮(
图标:图标(Icons.search),
已按下:(){
debugPrint('222');
}),
边框:新大纲输入边框(
borderRadius:const borderRadius.all(
圆形常数半径(50.0),
),
),
是的,
hintStyle:new TextStyle(颜色:Colors.grey[800]),
hintText:“搜索”,
填充颜色:颜色。白色),
),
),
),
首选尺寸:尺寸(0.0,80.0),
),
),
主体:脚手架(
正文:ListView.builder(
//separatorBuilder:(上下文,int){
//返回分隔符(颜色:Colors.black,);
//              },
//收缩膜:对,
itemBuilder:(构建上下文,int索引){
返回GridView.count(
收缩膜:对,
交叉轴计数:4,
childAspectRatio:1.0,
子项:列表。生成(6,(索引){
返回网格(
孩子:新卡(
颜色:Colors.blue.shade100,
孩子:新中心(
子项:新文本(“外部$index”),
),
),
);
}),
);
},
物品计数:4,
)
)
);
}
}

请您解释一下,它如何减缓我的具体问题?如何对每个网格行项目施加不同的值?
import 'package:flutter/material.dart';

class SubmitRequest extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    return _SubmitRequest();
  }
}

class _SubmitRequest extends State<SubmitRequest> {
  @override
  Widget build(BuildContext context) {
    return new Scaffold(
        drawer: Drawer(
          child: Container(
            color: Colors.black54,
            child: ListView(
              padding: EdgeInsets.only(top: 40.0),
              children: <Widget>[
                ListTile(
                  title: Text('Dashboard'),
                ),
                ListTile(
                  title: Text('Submit Reports'),
                ),
                ListTile(
                  title: Text('Inbox Requests'),
                ),
              ],
            ),
          ),
        ),
        appBar: AppBar(
          backgroundColor: Colors.blue,
          leading: IconButton(icon: Icon(Icons.menu), onPressed: () {}),
          actions: <Widget>[
            //    IconButton(icon: Icon(Icons.search), onPressed: () {}),
            IconButton(icon: Icon(Icons.help), onPressed: () {}),
          ],
          bottom: PreferredSize(
            child: Padding(
              padding: const EdgeInsets.fromLTRB(0.0, 0.0, 15.0, 16.0),
              child: Container(
                margin: EdgeInsets.only(left: 16.0),
                child: TextField(
                  decoration: new InputDecoration(
                      suffixIcon: IconButton(
                          icon: Icon(Icons.search),
                          onPressed: () {
                            debugPrint('222');
                          }),
                      border: new OutlineInputBorder(
                        borderRadius: const BorderRadius.all(
                          const Radius.circular(50.0),
                        ),
                      ),
                      filled: true,
                      hintStyle: new TextStyle(color: Colors.grey[800]),
                      hintText: "Search",
                      fillColor: Colors.white),
                ),
              ),
            ),
            preferredSize: Size(0.0, 80.0),
          ),
        ),
        body: Scaffold(
            body: ListView.builder(
//              separatorBuilder: (context, int) {
//                return Divider(color: Colors.black,);
//              },
              // shrinkWrap: true,
              itemBuilder: (BuildContext context, int index) {
                return GridView.count(
                  shrinkWrap: true,
                  crossAxisCount: 4,
                  childAspectRatio: 1.0,
                  children: List.generate(6, (index) {
                    return GridTile(
                      child: new Card(
                        color: Colors.blue.shade100,
                        child: new Center(
                          child: new Text('Exterior $index'),
                        ),
                      ),
                    );
                  }),
                );
              },
              itemCount: 4,
            )
        )
    );
  }
}