[Fluth]テキストにcustom省略記号を適用する
テキストが
Flutter開発者のためにDiscoコミュニティをオープンしました!
[ディスコサーバリンク]
アクセスすると、問題を簡単に残したり、会話をしたりすることができます.
皆さん、どうぞご参加ください.
overflow
であれば、...
に設定してellipsis
を表示することができるが、...
ではなく더보기
を与えたい場合がある.これは比較的複雑な方法であるが、custion ellipsis
およびTextPainter
を使用して、Custom CustomPainter
に適したellipsis
構成要素を作成することができる.import 'package:flutter/material.dart';
class CustomEllipsisText extends StatelessWidget {
const CustomEllipsisText({
Key? key,
required this.text,
this.style,
required this.ellipsis,
this.maxWidth = double.infinity,
this.minWidth = 0,
this.maxLines = 1,
this.textDirection,
}) : super(key: key);
final String text;
final TextStyle? style;
final String ellipsis;
final int maxLines;
final double maxWidth, minWidth;
final TextDirection? textDirection;
Widget build(BuildContext context) {
TextPainter textPainter = TextPainter(
text: TextSpan(text: text, style: style),
maxLines: maxLines,
textDirection: textDirection ?? TextDirection.ltr,
)..layout(minWidth: minWidth, maxWidth: maxWidth);
return CustomPaint(
size: textPainter.size,
painter: _CustomEllipsisTextPainter(
text: TextSpan(text: text, style: style),
ellipsis: ellipsis,
maxLines: maxLines,
));
}
}
class _CustomEllipsisTextPainter extends CustomPainter {
final TextSpan text;
final int maxLines;
final String ellipsis;
_CustomEllipsisTextPainter({
required this.text,
required this.ellipsis,
required this.maxLines,
}) : super();
bool shouldRepaint(CustomPainter oldDelegate) => false;
void paint(Canvas canvas, Size size) {
TextPainter painter = TextPainter(
text: text,
maxLines: maxLines,
textDirection: TextDirection.ltr,
)..ellipsis = ellipsis;
painter.layout(maxWidth: size.width);
painter.paint(canvas, const Offset(0, 0));
}
}
コード注意:Fluthでテキストを展開Flutter開発者のためにDiscoコミュニティをオープンしました!
[ディスコサーバリンク]
アクセスすると、問題を簡単に残したり、会話をしたりすることができます.
皆さん、どうぞご参加ください.
Reference
この問題について([Fluth]テキストにcustom省略記号を適用する), 我々は、より多くの情報をここで見つけました https://velog.io/@sangh518/FlutterCustomEllipsisテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol