微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用颤振中的用户输入行和列创建 Gridview

如何解决使用颤振中的用户输入行和列创建 Gridview

我们如何使用用户输入创建 Gridview?允许用户输入行数和列数。

img

解决方法

enter image description here

class Class extends StatefulWidget {
  @override
  _ClassState createState() => _ClassState();
}

class _ClassState extends State<Class> {

  TextEditingController row = TextEditingController();
  TextEditingController column = TextEditingController();

  int rowC = 2;
  int colC = 2;
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Column(
        children: [
          Container(
            height: 500,child: GridView.builder(
              itemCount: colC * rowC,gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: rowC,childAspectRatio: colC*rowC/2,crossAxisSpacing: 10,mainAxisSpacing: 10),shrinkWrap: true,itemBuilder: (context,index) => Container(
                color: Colors.greenAccent,),Text("Row"),TextField(
            controller: row,SizedBox(height: 20,Text("Column"),TextField(
            controller: column,FlatButton(onPressed: (){
            rowC = int.parse(row.text);
            colC = int.parse(column.text);
            setState(() {

            });
          },child: Container(
            color: Colors.purple,padding: EdgeInsets.all(20),child: Text("Add")))
        ],);
  }
}
,

您可以使用 GridView.builder 来实现您的要求。

GridView.builder(
          shrinkWrap: true,itemCount: (rowCount * ColumnCount),gridDelegate:
              SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: ColumnCount),index) {
            return Container(
              child: Text(index.toString()),);
          },);
  1. 您必须刷新小部件的每个用户输入。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。