Làm cách nào để in đậm (hoặc định dạng) một đoạn văn bản trong một đoạn văn?


97

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:


202

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)),
    ],
  ),
 );

26

[CẬP NHẬT]

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

[CÂU TRẢ LỜI CŨ]

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 "


8
Đây không phải là một ý tưởng tuyệt vời, nếu bạn sắp có một đoạn văn bản. Mỗi Văn bản () bên trong hàng tạo không gian dọc / ngang của riêng nó.
Muhammad Adil

vậy lựa chọn thay thế cho việc sử dụng Row là gì? và nếu tôi muốn văn bản cạnh nhau với định dạng khác
maheshmnj

2
hãy xem câu trả lời ở trên từ @Dvdwasibi, chỉ cần thử cách triển khai của bạn với đoạn văn lớn và bạn sẽ thấy có hai đoạn văn khác nhau nằm cạnh nhau. câu trả lời của bạn là Đúng cho 2/3 từ nhưng không đúng cho một đoạn văn.
Muhammad Adil

10
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?'),
    ],
  ),
);
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.