【Flutter Widget基礎】Text
基本的な利用方法
var sampleText = "this is a text sample";
Text(sampleText);
Textのstyle属性
Textのstyleを定義するときにはTextStyleを利用する
よく利用する属性
開発上でよく利用される属性の使い方は下記になります。
var sampleText = "this is a text sample";
var style = const TextStyle(
color: Colors.blue, //色
backgroundColor: Colors.yellow, //背景色
fontSize: 20,//フォントサイズ
fontWeight: FontWeight.bold,//フォントの太さ
fontStyle: FontStyle.italic,//フォントのスタイル
letterSpacing: 10,//水平方向の字間のスペース
maxLines: 3 //最大行数
);
Text(sampleText,style: style)
上記設定での画面表示はこうなります。
文字の装飾(decoration属性)
Textを装飾するときにはTextStyleにあるdecoration属性を利用する
decoration属性は4つの値があります。それぞれ適用された効果は下記になります。
none | lineThrough | Head | underline |
---|---|---|---|
装飾線の色及びスタイルの変更も可能になります。
var sampleText = "this is a text sample";
var style = const TextStyle(
color: Colors.blue, //色
backgroundColor: Colors.yellow, //背景色
fontSize: 20,//フォントサイズ
fontWeight: FontWeight.bold,//フォントの太さ
fontStyle: FontStyle.italic,//フォントのスタイル
letterSpacing: 10,//水平方向の字間のスペース
decoration: TextDecoration.lineThrough,//装飾
decorationColor: Colors.deepOrange,//装飾線の色
decorationStyle: TextDecorationStyle.wavy, //装飾線のスタイル
decorationThickness: 3.0,//
);
Text(sampleText,style: style)
上記設定での画面表示はこうなります。
textAlignとtextDirection属性
textDirectionは二つのTextDirection列挙型(ltr:左から右、rtl:右から左)を持っています。
textAlignはtextDirectionによって異なる表示をになります。
基本的な使い方:
var sampleText = "this is a text sample";
var style = const TextStyle(
color: Colors.blue, //色
backgroundColor: Colors.yellow, //背景色
fontSize: 20,//フォントサイズ
fontWeight: FontWeight.bold,//フォントの太さ
fontStyle: FontStyle.italic,//フォントのスタイル
letterSpacing: 10,//水平方向の字間のスペース
);
Text(sampleText,
style: style,
textAlign: TextAlign.start,
textDirection: TextDirection.ltr)
textDirectionとtextAlignの設定により画面表示が異なるので、詳しく見ていきましょう。
textDirectionはTextDirection.ltrの場合:
start | center | end | justify | left | right |
---|---|---|---|---|---|
textDirectionはTextDirection.rtlの場合:
start | center | end | justify | left | right |
---|---|---|---|---|---|
softWrapとoverflow属性
TextOverflow列挙型は四つの設定(clip、fade、ellipsis、visible)がありまして、softWrapはテキストが自動的に改行されるかどうかを決めます。
基本的な使い方:
var sampleText = "this is a text sample";
var style = const TextStyle(
color: Colors.blue, //色
backgroundColor: Colors.yellow, //背景色
fontSize: 20,//フォントサイズ
fontWeight: FontWeight.bold,//フォントの太さ
fontStyle: FontStyle.italic,//フォントのスタイル
letterSpacing: 10,//水平方向の字間のスペース
);
Text(sampleText,
style: style,
overflow: TextOverflow.clip,
softWrap: false)
softWrapとoverflowの設定により文字列の画面表示が異なるので、詳しく見ていきましょう。
softWrapはtrue(デフォルト)の場合:
clip | fade | ellipsis | visible |
---|---|---|---|
softWrapはfalseの場合:
clip | fade | ellipsis | visible |
---|---|---|---|
TextSpan
TextSpanはテキストを複数の部分に分けて、それぞれに異なるスタイルを適用できるようになります。
TextSpanを利用するには2通りの方法があります。
Text.rich経由で利用する場合:
Text.rich(
TextSpan(
text: 'Hello ',
style: TextStyle(fontSize:30, color: Colors.black),
children: <TextSpan>[
TextSpan(text: 'bold', style: TextStyle(fontSize: 30, fontWeight: FontWeight.bold)),
TextSpan(text: ' world!', style: TextStyle(fontSize: 30, fontStyle: FontStyle.italic)),
],
)
)
RichTextウィジェット経由で利用する場合:
RichText(
text: const TextSpan(
text: 'Hello ',
style: TextStyle(fontSize:30, color: Colors.black),
children: <TextSpan>[
TextSpan(text: 'bold', style: TextStyle(fontSize: 30, fontWeight: FontWeight.bold)),
TextSpan(text: ' world!', style: TextStyle(fontSize: 30, fontStyle: FontStyle.italic)),
],
),
)
上記コードは利用する方法が異なるが、画面表示は下記のように同様になります。
Discussion