【 Flutter 】Flutter を 基礎 から 学習 ( ウィジェット編 ) part35 Single-child layout widgets
「基礎 から 学ぶ Flutter 」という書籍で 学習 したことを ブログでアウトプットしていこうと思います。今回は ウィジェット編 ( part35 )です。
前回
【 Flutter 】Flutter を 基礎 から 学習 ( ウィジェット編 ) part34 Single-child layout widgets
引き続き、Single-child layout widgetsについて学びます。
Single-child layout widgets
AspectRatioウィジェット
AspectRatio
ウィジェットはウィジェットのアスペクト比を保ちます。
縦と横の長さの比率のことをアスペクト比というそうです。
ウィジェットの縦と横の比率を保つんですね。
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 createState() {
return _State();
}
}
class _State extends State {
@override
Widget build(BuildContext context) {
var size = MediaQuery.of(context).size;
var w = size.width;
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('テスト中です。'),
),
body: Column(
children: [
Container(
color: Colors.blue,
alignment: Alignment.center,
// 横は限界まで広げ・・・
width: double.infinity,
// 高さは100。
height: 100.0,
// 子供のコンテナは16:9を遵守します!
child: AspectRatio(
aspectRatio: 16 / 9,
child: Container(
color: Colors.green,
),
),
),
Container(
color: Colors.blue,
alignment: Alignment.center,
// 横は限界まで広げ・・・
width: double.infinity,
// 高さは100。
height: 100.0,
// AspectRatioがないコンテナは横にびよーんとのびます。
child: Container(
color: Colors.red,
),
),
],
)));
}
}
上のウィジェットがAspectRatio
を使用したコンテナ、下のウィジェットがAspectRatio
を使用していないコンテナです。
最後に
AspectRatio
使えば高さや幅を細かく指定しなくてもよいですし移植しやすい気がしますね。
使いまわしもやりやすそうです。
今日はここまで!
参考
アスペクト比 (aspect ratio)とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典 (i-3-i.info)
AspectRatio class – widgets library – Dart API (flutter.dev)
ディスカッション
コメント一覧
まだ、コメントがありません