【问题标题】:Change height of row in GridView builder to fixed height将 GridView 构建器中的行高更改为固定高度
【发布时间】:2020-04-21 10:54:57
【问题描述】:

我注意到 GridView 使每个孩子成为一个正方形。有没有办法调整每个孩子的高度,这意味着 GridView.builder 中的整行 GridView 行?

在此示例中,我希望每个输入彼此相邻。

List<Map<String, dynamic>> list = [
  {'description': 'des1'},
  {'description': 'des2'},
  {'description': 'des3'},
  {'description': 'des4'},
  {'description': 'des5'},
  {'description': 'des6'}
];

class _MaterialScreenState extends State<MaterialScreen> {
  String text = '';
  @override
  Widget build(BuildContext context) {
    return Scaffold(
        body: Column(
      children: <Widget>[
        Text(text),
        GridView.builder(
            shrinkWrap: true,
            itemCount: list.length,
            gridDelegate:
                SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 5),
            itemBuilder: (BuildContext context, int index) {
              return TextFormField(
                textAlign: TextAlign.center,
                onTap: () => setState(() {
                  text = list[index]['description'];
                }),
                decoration: InputDecoration(border: OutlineInputBorder()),
              );
            }),
      ],
    ));

问题:

原因:

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    这个怎么样?

    gridDelegate: SliverGridDelegateWithMaxCrossAxisExtent(
      maxCrossAxisExtent: 200,
      childAspectRatio: 3,
    ),
    

    【讨论】:

    • hmm... 我想即使我想在一行中拥有固定数量的项目,这也是迄今为止最好的解决方法
    【解决方案2】:

    你可以使用“childAspectRatio”。

    gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
      crossAxisCount: 5,
      childAspectRatio: 2,
    ),
    

    【讨论】:

    • 是的..但这并不能解决问题......是吗?尝试旋转显示
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-04
    • 1970-01-01
    • 1970-01-01
    • 2021-01-02
    • 2014-08-24
    相关资源
    最近更新 更多