【 Flutter 】Flutter を 基礎 から 学習 ( ウィジェット編 ) part74 Painting and effects
「基礎 から 学ぶ Flutter 」という書籍で 学習 したことを ブログでアウトプットしていこうと思います。今回は ウィジェット編 ( part74 )です。
前回
【 Flutter 】Flutter を 基礎 から 学習 ( ウィジェット編 ) part73 Painting and effects
引き続き、Painting and effectsについて学びます。
Painting and effects
CustomPaintウィジェット
CustomPaint
ウィジェットは自由に図形を描画するときに使うウィジェットです。
自由!
すごいウィジェットが作れそうですね。
このウィジェットはpainter
プロパティにCustomPainter
クラスを継承した自作クラスを指定します。
- main.dart
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_app/mypainter.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
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('テスト中です。'),
),
body: CustomPaint(
painter: MyPainter(),
),
));
}
}
- mypainter.dart
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class MyPainter extends CustomPainter {
@override
void paint(Canvas canvas, Size size) {
// カスケード記法でしたかね!
final paint = Paint()..color = Colors.blue;
canvas.drawRect(Rect.fromLTWH(0, 0, 50, 50), paint);
paint.color = Colors.grey;
paint.strokeWidth = 5;
canvas.drawLine(Offset(140, 10), Offset(140, 60), paint);
paint.color = Colors.red;
canvas.drawCircle(Offset(100, 35), 25, paint);
}
@override
bool shouldRepaint(covariant CustomPainter oldDelegate) {
return true;
}
}
最後に
参考書のサンプルではうまく動作しませんでした。
何も表示されません😅
今日はここまで!
参考
[Flutter] キャンバス上で任意の図形の描画を行えるCustomPaintを使ってみる | DevelopersIO (classmethod.jp)
ディスカッション
コメント一覧
まだ、コメントがありません