【 Flutter 】Flutter を 基礎 から 学習 ( ウィジェット編 ) part26 Single-child layout widgets

基礎 から 学ぶ Flutter 」という書籍で  学習 したことを ブログでアウトプットしていこうと思います。今回は ウィジェット編 ( part26 )です。

前回

【 Flutter 】Flutter を 基礎 から 学習 ( ウィジェット編 ) part25 Single-child layout widgets

引き続き、Single-child layout widgetsについて学びます。

Single-child layout widgets

BoxDecorationクラス

boxShadowプロパティ

boxShadowプロパティはウィジェットに影を付けることができます。

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 mediaQuery = MediaQuery.of(context);

    return MaterialApp(
      home: Scaffold(
          appBar: AppBar(
            title: Text('テスト中です。'),
          ),
          body: Center(
              child: Column(children: <Widget>[
            // 丸です。
            Container(
              decoration: BoxDecoration(
                  color: Colors.green,
                  shape: BoxShape.circle,
                  boxShadow: const [BoxShadow(blurRadius: 10)]), // ★
              height: 200,
              width: 200,
            ),
            // 四角です。
            Container(
              decoration: BoxDecoration(
                  color: Colors.red,
                  shape: BoxShape.rectangle,
                  boxShadow: const [BoxShadow(blurRadius: 30)]), // ★
              height: 200,
              width: 200,
            ),
          ]))),
    );
  }
}

こうなります。ボワッと立体的になりましたね。

gradientプロパティ

gradietプロパティはウィジェットをグラデーションさせることができます。

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 mediaQuery = MediaQuery.of(context);

    return MaterialApp(
      home: Scaffold(
          appBar: AppBar(
            title: Text('テスト中です。'),
          ),
          body: Center(
              child: Column(children: <Widget>[
            // 丸です。
            Container(
              decoration: BoxDecoration(
                gradient:
                    LinearGradient(colors: [Colors.yellowAccent, Colors.black]), // ★
                shape: BoxShape.circle,
              ),
              height: 200,
              width: 200,
            ),
            // 四角です。
            Container(
              decoration: BoxDecoration(
                gradient:
                    RadialGradient(colors: [Colors.pinkAccent, Colors.white]), // ★
                shape: BoxShape.rectangle,
              ),
              height: 200,
              width: 200,
            ),
            Container(
              decoration: BoxDecoration(
                // ★
                gradient: SweepGradient(
                    colors: [Colors.greenAccent, Colors.lightBlue]),
                shape: BoxShape.rectangle,
              ),
              height: 200,
              width: 200,
            ),
          ]))),
    );
  }
}

こうなりました。カラフルで素敵です!

最後に

まさにアートですね!

今日はここまで!