Làm cách nào để có một dòng văn bản với định dạng khác nhau?
ví dụ:
Xin chào thế giới
Câu trả lời:
Bạn nên sử dụng tiện ích RichText .
Một widget RichText sẽ đưa vào một widget TextSpan cũng có thể có một danh sách các TextSpans con.
Mỗi tiện ích TextSpan có thể có một TextStyle khác nhau .
Đây là mã ví dụ để kết xuất: Hello World
var text = new RichText(
text: new TextSpan(
// Note: Styles for TextSpans must be explicitly defined.
// Child text spans will inherit styles from parent
style: new TextStyle(
fontSize: 14.0,
color: Colors.black,
),
children: <TextSpan>[
new TextSpan(text: 'Hello'),
new TextSpan(text: 'World', style: new TextStyle(fontWeight: FontWeight.bold)),
],
),
);
Câu trả lời dưới đây phù hợp nhất cho một vài từ chứ không phải cho một đoạn văn, Nếu bạn có một câu dài hoặc một đoạn văn mà bạn cần định dạng một văn bản cụ thể, hãy sử dụng RichText như được gợi ý bởi @DvdWasibi trong câu trả lời ở trên
Tôi muốn giữ cho mã của mình ngắn gọn và rõ ràng, đây là Cách tôi sẽ thực hiện thêm hai trường văn bản liên tiếp, một trường có phông chữ Thường và một trường chữ đậm khác ,
Lưu ý: Điều này có thể không tốt cho một đoạn văn dài có vẻ tốt cho Tiêu đề, v.v.
Row(children: <Widget>[
Text("Hello"),
Text("World", style: TextStyle(fontWeight: FontWeight.bold))
])
`
và bạn sẽ nhận được đầu ra mong muốn là "Hello World "
return RichText(
text: TextSpan(
text: 'Can you ',
style: TextStyle(color: Colors.black),
children: <TextSpan>[
TextSpan(
text: 'find the',
style: TextStyle(
color: Colors.green,
decoration: TextDecoration.underline,
decorationStyle: TextDecorationStyle.wavy,
),
recognizer: _longPressRecognizer,
),
TextSpan(text: 'secret?'),
],
),
);