【 Flutter 】Flutter を 基礎 から 学習 ( ウィジェット編 ) part90 Scrolling
「 基礎 から 学ぶ Flutter 」という書籍で 学習 したことを ブログでアウトプットしていこうと思います。今回は ウィジェット編 ( part90 )です。
前回
【 Flutter 】Flutter を 基礎 から 学習 ( ウィジェット編 ) part89 Scrolling
引き続き、Scrollingについて学びます。
Scrolling
PageViewウィジェット
PageView.customコンストラクタ
PageView.custom
コンストラクタではchildrenDelegate
プロパティにSliverChildBuilderDelegate
クラスかSliverChildListDelegate
クラスを設定します。
長いクラス名を見るとJava言語
を想起してしまいます。Java言語に携わっていることが長いという理由もありますね😄
Delegate処理はC#
でよく見かけました。なのでこの仕組みには多少心得があります。
import 'dart:math' as math;
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();
}
}
final items = <Widget>[
box("1"),
box("2"),
box("3"),
box("4"),
box("5"),
];
class _State extends State<MyApp> {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('テスト中です。'),
),
body: PageView.custom(
childrenDelegate: SliverChildBuilderDelegate(
(BuildContext context, int index) {
return items[index];
},
childCount: 3, // ここをコメントアウトするとitemsの要素すべてをページネーションできます。
),
),
));
}
}
Container box(String text) {
return Container(
alignment: Alignment.center,
width: 100,
height: 200,
color:
Color((math.Random().nextDouble() * 0xFFFFFF).toInt()).withOpacity(1.0),
child: Text(text),
);
}
最後に
前回のPageView.builder
コンテキストのitemCount
も省略可能だったのかもしれませんね。
時間が無くて試していませんでした。
今日はここまで!
ディスカッション
コメント一覧
まだ、コメントがありません