How to center gridView items in Flutter?

前端 未结 1 1382
忘掉有多难
忘掉有多难 2021-01-21 14:48

I have a 4*4 grid view, but sometimes instead of 16 items there might only be 15 items, to the last row looks not so nice...

I am wondered is there any way to center ite

相关标签:
1条回答
  • 2021-01-21 15:44

    as an option you can use Wrap widget instead of Grid here is an example

    import 'package:flutter/material.dart';
    
    void main() => runApp(MyApp());
    
    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          debugShowCheckedModeBanner: false,
          home: Scaffold(
            appBar: AppBar(title: const Text('Title')),
            body: AlignedGrid(),
          ),
        );
      }
    }
    
    class AlignedGrid extends StatelessWidget {
      final double runSpacing = 4;
      final double spacing = 4;
      final int listSize = 15;
      final columns = 4;
    
      @override
      Widget build(BuildContext context) {
        final w = (MediaQuery.of(context).size.width - runSpacing * (columns - 1)) / columns;
        return SingleChildScrollView(
          child: Wrap(
            runSpacing: runSpacing,
            spacing: spacing,
            alignment: WrapAlignment.center,
            children: List.generate(listSize, (index) {
              return Container(
                width: w,
                height: w,
                color: Colors.green[200],
              );
            }),
          ),
        );
      }
    }
    

    change alignment property as you wish e.g. WrapAlignment.spaceEvenly

    0 讨论(0)
提交回复
热议问题