flutterでBoxDecorationの使い方を知りたい方向け。
デモコードを使いながら、この記事でなるべくわかりやすく解説します。
この記事は以下のような方を対象者としています。
- flutter初学者の方
- flutterでBoxDecorationの使い方が分からない方
今回使用するデモコード#
まずは、こちらのソースコードをご覧ください。
こちらのコードは“BoxDecoration"と書かれた長方形型のテキストフレームを描画するデモコードです。
こちらのソースを元に解説していきます。
class SplashScreen extends StatefulWidget {
SplashScreen({Key key, this.title}) : super(key: key);
final String title;
@override
_SplashScreenState createState() => _SplashScreenState();
}
class _SplashScreenState extends State<SplashScreen> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: _titleArea(),
),
);
}
}
Widget _titleArea() {
return Container(
decoration: BoxDecoration(
boxShadow: [
BoxShadow(
color: Colors.black12,
blurRadius: 10.0,
spreadRadius: 1.0,
offset: Offset(10, 10))
],
border: Border.all(color: Colors.black, width: 9),
borderRadius: BorderRadius.circular(12)),
padding: EdgeInsets.all(10),
child: Text(
"BoxDecoration",
style: TextStyle(fontWeight: FontWeight.bold, fontSize: 32.0),
),
);
}
flutterをわかりやすく : BoxDecoration#
BoxDecorationとはContainer内のプロパティとして使われ、Containerの見た目の装飾に使われます。
できることは様々で、例えばオブジェクトの枠線をつけたり、オブジェクトに影をつけたりできます。
数が多いため、主要なプロパティのみコード付きで解説していきたいと思います。
Widget _titleArea() {
return Container(
<!-- 今回の説明対象のコード ここから -->
decoration: BoxDecoration(
boxShadow: [
BoxShadow(
color: Colors.black12,
blurRadius: 10.0,
spreadRadius: 1.0,
offset: Offset(10, 10))
],
border: Border.all(color: Colors.black, width: 9),
borderRadius: BorderRadius.circular(12)),
<!-- 今回の説明対象のコード ここまで -->
padding: EdgeInsets.all(10),
child: Text(
"BoxDecoration",
style: TextStyle(fontWeight: FontWeight.bold, fontSize: 32.0),
),
);
}
flutterをわかりやすく : boxShadowプロパティとは#
BoxShadowプロパティはその名の通りオブジェクトに影エフェクトをつける時に使われます。
影をつけることでより立体感のある見た目(UI)のオブジェクトを作ることができます。
- color : 影の色
- blurRadius : 影の濃さ
- spradRadius : 影の広さ(大きさ)
- offset : 影の位置(x軸,y軸)
Widget _titleArea() {
return Container(
decoration: BoxDecoration(
<!-- ここから -->
boxShadow: [
BoxShadow(
color: Colors.black12,
blurRadius: 10.0,
spreadRadius: 1.0,
offset: Offset(10, 10))
],
<!-- ここまで -->
border: Border.all(color: Colors.black, width: 9),
borderRadius: BorderRadius.circular(12)),
padding: EdgeInsets.all(10),
child: Text(
"BoxDecoration",
style: TextStyle(fontWeight: FontWeight.bold, fontSize: 32.0),
),
);
}
flutterをわかりやすく : borderプロパティとは#
borderプロパティはオブジェクトの枠線を定義します。
強調したいコンポーネントがあった場合にこのborderプロパティを使用します。
- color : 影の色
- blurRadius : 影の濃さ
- spradRadius : 影の広さ(大きさ)
- offset : 影の位置(x軸,y軸)
Widget _titleArea() {
return Container(
decoration: BoxDecoration(
boxShadow: [
BoxShadow(
color: Colors.black12,
blurRadius: 10.0,
spreadRadius: 1.0,
offset: Offset(10, 10))
],
<!-- ここから -->
border: Border.all(color: Colors.black, width: 9),
borderRadius: BorderRadius.circular(12)),
<!-- ここまで -->
padding: EdgeInsets.all(10),
child: Text(
"BoxDecoration",
style: TextStyle(fontWeight: FontWeight.bold, fontSize: 32.0),
),
);
}
さいごに#
ここまでお読みいただきありがとうございました。
私のブログ記事を読んでいる方の中には海外転職・海外移住への興味がある方もいらっしゃるかと思います。
私自身ダナンで働き始めて7年目になりますが、海外就職を実現するために大事なのは英語力と開発現場で働いた経験だと感じました。
もし今後海外移住・海外就職を本気で実現させたい方はぜひこれらのサービスを活用してみてください。
レアジョブ - 実務で使える英語力を身につけよう#
レアジョブ英会話は英会話力の向上に特化したサービスです。 私の友人もレアジョブを通じて0から学習を続け、現在はベトナム人のエンジニアとも英語でコミュニケーションが取れるレベルまで英会話力を伸ばすことができました。
レアジョブが選ばれる理由は多岐にわたりますが、主な理由としては下記3点が考えられます。
- 優秀な講師陣:公用語が英語であるフィリピン人の方が講師となり、生きた英語を身につけることができる
- 豊富な教材: 5,000以上の教材を提供しており、学習者のレベルや目的に応じて最適な教材を選べます。
- 安心のサポート体制:初心者でも安心して始められるように、日本人カウンセラーが学習のサポートをしてくれます。
海外移住計画の第一歩として、スピーキング力を身につけたいと考えている方は、ぜひこちらの無料体験を試してみてはいかがでしょうか。