【 Flutter 】Flutter を 基礎 から 学習 ( ウィジェット編 ) part36 Single-child layout widgets
「基礎 から 学ぶ Flutter 」という書籍で 学習 したことを ブログでアウトプットしていこうと思います。今回は ウィジェット編 ( part36 )です。
前回
【 Flutter 】Flutter を 基礎 から 学習 ( ウィジェット編 ) part35 Single-child layout widgets
引き続き、Single-child layout widgetsについて学びます。
Single-child layout widgets
LimitedBoxウィジェット
LimitedBox
ウィジェットはListView
のように子ウィジェットに制限を与えられない(子ウィジェットはこの場合サイズが与えられていないので表示出来ない不らしいです😅)ウィジェットのために存在するようです。
上記のような迷える子ウィジェットに対してLimitedBox
ウィジェットで包んであげてサイズを与えることができます。
import 'dart:math';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
void main() {
runApp(new MaterialApp(home: new MyApp()));
}
var ok = false;
class MyApp extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return _State();
}
}
class _State extends State<MyApp> {
@override
Widget build(BuildContext context) {
var _random = new Random(); // 本書でもこの定義書いてくださいよ・・・。
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('テスト中です。'),
),
body: ListView(
children: <Widget>[
for (var _ in Iterable<int>.generate(10).toList())
LimitedBox(
maxHeight: 100,
child: Container(
color: Color.fromARGB(
_random.nextInt(256),
_random.nextInt(256),
_random.nextInt(256),
_random.nextInt(256)))),
],
)));
}
}
ちゃんと子ウィジェットが表示されましたね。
もし、LimietdBox
ウィジェットが無かったら・・・こうなります。
import 'dart:math';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
void main() {
runApp(new MaterialApp(home: new MyApp()));
}
var ok = false;
class MyApp extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return _State();
}
}
class _State extends State<MyApp> {
@override
Widget build(BuildContext context) {
var _random = new Random(); // 本書でもこの定義書いてくださいよ・・・。
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('テスト中です。'),
),
body: ListView(
children: <Widget>[
for (var _ in Iterable<int>.generate(10).toList())
// LimitedBoxが無かったら・・。
// LimitedBox(
// maxHeight: 100,
// child:
Container(
color: Color.fromARGB(
_random.nextInt(256),
_random.nextInt(256),
_random.nextInt(256),
_random.nextInt(256))),
// ),
],
)));
}
}
ご覧のとおりです。
最後に
以前もお伝えしたような気がしますがFlutterは親の権限がとても強いですね。
安心安全なコントロールできます。
今日はここまで!
ディスカッション
コメント一覧
まだ、コメントがありません