【Flutter 2.0】日本語を含むTextに下線を引く装飾の実装

はじめに

Flutterでアプリを開発している時、あるTextに下線をつけたくなりました。英語のみのTextであればTextStyleで簡単に設定できますが、日本語を含む場合に詰まってしまったので記事にしてみたいと思います。

下線を引く

以下のようなコードでTextにunderlineを設定します。

英語や数字のみの場合

この場合は、特に問題なくスタイルが適用されています。

日本語に数字や英語を含む場合

この場合は、英語と日本語ではテキストの高さ(BaseLine?)が違うようで、
うまくスタイルが適用されませんでした。

試したこと

StrutStyleでTextの高さを揃えてみる

StrutStyleを設定すると日本語と英語のテキストの高さを揃えることができるようなので、試してみましたが
テキスト自体が少し下に移動しただけで、変わらず下線はズレたままでした…。

参考: Flutter StrutStyleで日本語と英語のTextの高さを揃える Qiita

今回の実装

実装について



Stackを使ってTextの下に重なるように、高さを持った線となるContainerを差し込むようにして見た目を作ってみました。Positionedで線の位置を指定しています。

ソースコード

さいごに

今回はTextに直接Containerを挿し込むような力づくな実装になってしまいました。
他の解決方法があれば、ぜひコメントで教えていただきたいです…。
見て頂いてありがとうございます。

参考

参考 Positioned classFlutter dev

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です