【 Flutter 】Flutter を 基礎 から 学習 ( ウィジェット編 ) part75 Painting and effects
「基礎 から 学ぶ Flutter 」という書籍で 学習 したことを ブログでアウトプットしていこうと思います。今回は ウィジェット編 ( part75 )です。
前回
【 Flutter 】Flutter を 基礎 から 学習 ( ウィジェット編 ) part74 Painting and effects
引き続き、Painting and effectsについて学びます。
Painting and effects
Transformウィジェット
Transform
ウィジェットは子ウィジェットに対して多彩なアニメーションを実現できます。
Transform.rotateコンストラクタ
Transform.rotate
コンストラクタはウィジェットの角度を変更できます。
import 'dart:math';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:transparent_image/transparent_image.dart';
void main() {
runApp(new MaterialApp(home: new MyApp()));
}
class MyApp extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return _State();
}
}
class _State extends State<MyApp> {
int _index = 0;
@override
// pubspec.yamlのdependenciesに「transparent_image: ^2.0.0」を追加しておきます。
// pub getを忘れずに!
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('テスト中です。'),
),
body: Transform.rotate(
angle: pi / 4,
child: FadeInImage.memoryNetwork(
placeholder: kTransparentImage,
image: 'https://picsum.photos/250?image=9',
fadeInDuration: const Duration(milliseconds: 200),
width: 100,
height: 100,
fit: BoxFit.cover,
)),
));
}
}
Transform.scaleコンストラクタ
Transform.scale
コンストラクタはウィジェットの拡大・縮小ができます。
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:transparent_image/transparent_image.dart';
void main() {
runApp(new MaterialApp(home: new MyApp()));
}
class MyApp extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return _State();
}
}
class _State extends State<MyApp> {
int _index = 0;
@override
// pubspec.yamlのdependenciesに「transparent_image: ^2.0.0」を追加しておきます。
// pub getを忘れずに!
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('テスト中です。'),
),
body: Transform.scale(
scale: 3,
child: FadeInImage.memoryNetwork(
placeholder: kTransparentImage,
image: 'https://picsum.photos/250?image=9',
fadeInDuration: const Duration(milliseconds: 200),
width: 100,
height: 100,
fit: BoxFit.cover,
)),
));
}
}
Transform.translateコンストラクタ
Transform.translate
コンストラクタはウィジェットの移動ができます。
・・・移動?どういうこと?
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:transparent_image/transparent_image.dart';
void main() {
runApp(new MaterialApp(home: new MyApp()));
}
class MyApp extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return _State();
}
}
class _State extends State<MyApp> {
int _index = 0;
@override
// pubspec.yamlのdependenciesに「transparent_image: ^2.0.0」を追加しておきます。
// pub getを忘れずに!
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('テスト中です。'),
),
body: Transform.translate(
offset: Offset(50, 50),
child: FadeInImage.memoryNetwork(
placeholder: kTransparentImage,
image: 'https://picsum.photos/250?image=9',
fadeInDuration: const Duration(milliseconds: 200),
width: 100,
height: 100,
fit: BoxFit.cover,
)),
));
}
}
なるほど。しかし他のRow
やColumn
ウィジェット使ってきれいに整列されていた場合、このコンストラクタを使うをレイアウトが崩れるのではないですかね?
最後に
ウィジェットの角度を変えたいときというのはどんな時なのでしょう?
今日はここまで!
ディスカッション
コメント一覧
まだ、コメントがありません