翩翩起舞不同大小的网格视图项目

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

我想用gridview创建一个分类选择器,并希望它们有不同的大小(包住每个)。

要做成下面这样的gridview,我应该用什么。

对不起,我的英语不好,谢谢你的帮助。

.

flutter dart flutter-layout
1个回答
2
投票

使用 包裹

enter image description here

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        body: SafeArea(
          child: MyHomePage(),
        ),
      ),
    );
  }
}

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    var elements = [
      'Android',
      'Ios',
      'Web front',
      'Sever',
      'Embedded Sofware',
      'Design'
    ];
    return Wrap(
      children: elements.map((el) => _MyButton(name: el)).toList(),
    );
  }
}

class _MyButton extends StatelessWidget {
  _MyButton({Key key, this.name}) : super(key: key);

  final String name;

  @override
  Widget build(BuildContext context) {
    return Container(
      margin: EdgeInsets.all(5),
      decoration: BoxDecoration(
        borderRadius: BorderRadius.circular(10),
        border: Border.all(
          color: Colors.black,
          width: 1,
          style: BorderStyle.solid,
        ),
      ),
      padding: EdgeInsets.all(20),
      child: Text(name),
    );
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.