防止长单字串去换行flutter
Prevent long single word string from going to new line flutter
我从用户那里得到了一个很长的字符串。但是,该字符串不使用右侧的 space。有没有什么方法可以让字符串在到达其 space 末尾时被连字符,然后才转到下一行?
这是我的代码:
Widget getIconWithDesc (IconData iconData, Color iconColor) {
return Flexible(
child: Row(
children: [
Flexible(flex: 2, child: Icon(iconData, size: 60.0, color: iconColor)),
const Flexible(flex: 1, child: SizedBox(width: 10.0,)),
Flexible(flex:1, child: Text(widget.desc)),
],
),
);}
我添加了 Flexible 小部件,因为否则文本会溢出屏幕。但是,尽管这可以防止溢出,但 String 不会占用右侧的 space。我试图弄乱 flex 值,但没有成功。
尝试使用 Fitted Box 而不是 Flexible。这可能会使您的文本变小。
Widget getIconWithDesc (IconData iconData, Color iconColor) {
return Row(
children: [
FittedBox(flex: 2, child: Icon(iconData, size: 60.0, color: iconColor)),
const Flexible(flex: 1, child: SizedBox(width: 10.0,)),
Flexible(flex:1, child: Text(widget.desc)),
],
);}
试试这个
Flexible(
child: new Container(
child: new Text(
widget.desc,
overflow: TextOverflow.ellipsis,
),
),
),
这将仅显示那些在指定容器区域中容易看到的文本,并在文本末尾放置 ...。
像这样:/data/user/0/com ...
您可以在文本小部件中尝试 'maxLines':
Text(
"Games",
**maxLines: 1**,
textAlign: TextAlign.left,
style: CF.getBoldStyle(color: Colorito.white, fontSize: 12),
),
通过 flutter 文档:
文本跨越的可选最大行数,必要时换行。如果文本超过给定的行数,将根据[overflow]截断。
如果这是 1,文本将不会换行。否则,文本将被包裹在方框的边缘。
如果这是 null,但有一个环境 [DefaultTextStyle] 为其 [DefaultTextStyle.maxLines] 指定了一个明确的数字,那么 [DefaultTextStyle] 值将优先。您可以直接使用 [RichText] 小部件来完全覆盖 [DefaultTextStyle]。
return Row(
children: [
Icon(iconData, size: 60.0, color: iconColor),
const SizedBox(width: 10.0,),
Expanded( child: Text(widget.desc)),
],
);}
我从用户那里得到了一个很长的字符串。但是,该字符串不使用右侧的 space。有没有什么方法可以让字符串在到达其 space 末尾时被连字符,然后才转到下一行?
这是我的代码:
Widget getIconWithDesc (IconData iconData, Color iconColor) {
return Flexible(
child: Row(
children: [
Flexible(flex: 2, child: Icon(iconData, size: 60.0, color: iconColor)),
const Flexible(flex: 1, child: SizedBox(width: 10.0,)),
Flexible(flex:1, child: Text(widget.desc)),
],
),
);}
我添加了 Flexible 小部件,因为否则文本会溢出屏幕。但是,尽管这可以防止溢出,但 String 不会占用右侧的 space。我试图弄乱 flex 值,但没有成功。
尝试使用 Fitted Box 而不是 Flexible。这可能会使您的文本变小。
Widget getIconWithDesc (IconData iconData, Color iconColor) {
return Row(
children: [
FittedBox(flex: 2, child: Icon(iconData, size: 60.0, color: iconColor)),
const Flexible(flex: 1, child: SizedBox(width: 10.0,)),
Flexible(flex:1, child: Text(widget.desc)),
],
);}
试试这个
Flexible(
child: new Container(
child: new Text(
widget.desc,
overflow: TextOverflow.ellipsis,
),
),
),
这将仅显示那些在指定容器区域中容易看到的文本,并在文本末尾放置 ...。
像这样:/data/user/0/com ...
您可以在文本小部件中尝试 'maxLines':
Text(
"Games",
**maxLines: 1**,
textAlign: TextAlign.left,
style: CF.getBoldStyle(color: Colorito.white, fontSize: 12),
),
通过 flutter 文档: 文本跨越的可选最大行数,必要时换行。如果文本超过给定的行数,将根据[overflow]截断。
如果这是 1,文本将不会换行。否则,文本将被包裹在方框的边缘。
如果这是 null,但有一个环境 [DefaultTextStyle] 为其 [DefaultTextStyle.maxLines] 指定了一个明确的数字,那么 [DefaultTextStyle] 值将优先。您可以直接使用 [RichText] 小部件来完全覆盖 [DefaultTextStyle]。
return Row(
children: [
Icon(iconData, size: 60.0, color: iconColor),
const SizedBox(width: 10.0,),
Expanded( child: Text(widget.desc)),
],
);}