Skip to main content

创建网格列表

在某些情况下,您可能希望将项目显示为网格,而不是按顺序排列的普通项目列表。 为此,请使用 GridView 小部件。

使用网格最简单的方法是使用 GridView.count() 构造函数,因为它允许您指定所需的行列数。

为了可视化 GridView 的工作方式,请生成一个包含 100 个小部件的列表,这些小部件显示它们在列表中的索引。

dart
GridView.count(
  // 创建一个包含 2 列的网格。如果将 scrollDirection 更改为水平方向,则会生成 2 行。
  crossAxisCount: 2,
  // 生成 100 个小部件,显示它们在列表中的索引。
  children: List.generate(100, (index) {
    return Center(
      child: Text(
        'Item $index',
        style: Theme.of(context).textTheme.headlineSmall,
      ),
    );
  }),
),

交互式示例

#
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    const title = 'Grid List';

    return MaterialApp(
      title: title,
      home: Scaffold(
        appBar: AppBar(
          title: const Text(title),
        ),
        body: GridView.count(
          // 创建一个包含 2 列的网格。如果将 scrollDirection 更改为水平方向,则会生成 2 行。
          crossAxisCount: 2,
          // 生成 100 个小部件,显示它们在列表中的索引。
          children: List.generate(100, (index) {
            return Center(
              child: Text(
                'Item $index',
                style: Theme.of(context).textTheme.headlineSmall,
              ),
            );
          }),
        ),
      ),
    );
  }
}