【 Flutter 】Flutter を 基礎 から 学習 ( ウィジェット編 ) part84 Scrolling

基礎 から 学ぶ Flutter 」という書籍で  学習 したことを ブログでアウトプットしていこうと思います。今回は ウィジェット編 ( part84 )です。

前回

【 Flutter 】Flutter を 基礎 から 学習 ( ウィジェット編 ) part83 Scrolling

引き続き、Scrollingについて学びます。

Scrolling

GridViewウィジェット

GridView.builderコンストラクタ

GridView.builderコンストラクタは動的にウィジェットを構成する際に使えそうなコンストラクタです。
itemBuilderプロパティを駆使して無限グリッドビューを実現できるようです!

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

void main() {
  runApp(new MaterialApp(home: new MyApp()));
}

class MyApp extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    return _State();
  }
}

class _State extends State<MyApp> {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('テスト中です。'),
        ),
        body: GridView.builder(
          gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
            crossAxisCount: 3,
            mainAxisSpacing: 8,
            crossAxisSpacing: 16.0,
            childAspectRatio: 2,
          ),
          scrollDirection: Axis.vertical,
          primary: false,
          padding: const EdgeInsets.all(32.0),
          itemCount: 7, // ここを省略すると無限グリッドビューになります。
          itemBuilder: (context, index) {
            return box((index + 1).toString());
          },
        ),
      ),
    );
  }

  Container box(String text) {
    return Container(
      alignment: Alignment.center,
      width: 100,
      height: 100,
      color: Colors.green,
      child: Text(text),
    );
  }
}

 

最後に

GridView使うならこれが最高に使いやすそうですね!

今日はここまで!