没有指定最大行数,文本在 1 行后被截断。如果值大于父级允许的大小,则文本超出父级并且没有错误。
@override
Widget build(BuildContext context) {
return MaterialApp(
home: SafeArea(
child: Material(
child: Column(
children: [
Container(
color: Colors.black12,
height: 100,
child: Text(
'dsf sdf ds fs dfsdfdf iuh gyj gy y'
' guygiukjh uiygihjo; rdtfyguhijok rftyguhij yguhij'
'dsf sdf ds fs dfsdfdf iuh gyj gy y'
' guygiukjh uiygihjo; rdtfyguhijok rftyguhij yguhij'
'dsf sdf ds fs dfsdfdf iuh gyj gy y'
' guygiukjh uiygihjo; rdtfyguhijok rftyguhij yguhij'
'dsf sdf ds fs dfsdfdf iuh gyj gy y'
' guygiukjh uiygihjo; rdtfyguhijok rftyguhij yguhij'
'dsf sdf ds fs dfsdfdf iuh gyj gy y'
' guygiukjh uiygihjo; rdtfyguhijok rftyguhij yguhij',
overflow: TextOverflow.ellipsis,
maxLines: 122,
),
),
],
),
),
),
);
}
softWrap 没有任何影响,也无助于包裹 Flexible 和 Expanded。
只需删除
height: 100,
它就会被修复。
将 TextOverflow.ellipsis 替换为:
overflow: TextOverflow.visible,
或 overflow: TextOverflow.clip,
TextOverflow.visible:文本将可见,但你必须 在你的情况下增加容器的高度
TextOverflow.clip:文本将可见,容器高度可以 包含
从代码中删除以下两行。
overflow: TextOverflow.ellipsis,
maxLines: 122,
已编辑
并添加
textAlign
作为justify
textAlign: TextAlign.justify,
maxLines
确实给出了这种奇怪的行为。
由于您对高度进行了硬编码,因此只需使用适合该高度的硬编码 maxLines 即可。然后按照一些答案的建议,用Expanded
包裹你的文字。如您所愿,如果maxLines
不适合给定的高度,这将显示溢出警告。
Container(height: 100, child: Column(
children: [
Row(
children: [
Expanded(
child: Text(
'dsf sdf ds fs dfsdfdf iuh gyj gy y'
' guygiukjh uiygihjo; rdtfyguhijok rftyguhij yguhij'
'dsf sdf ds fs dfsdfdf iuh gyj gy y'
' guygiukjh uiygihjo; rdtfyguhijok rftyguhij yguhij'
'dsf sdf ds fs dfsdfdf iuh gyj gy y'
' guygiukjh uiygihjo; rdtfyguhijok rftyguhij yguhij'
'dsf sdf ds fs dfsdfdf iuh gyj gy y'
' guygiukjh uiygihjo; rdtfyguhijok rftyguhij yguhij'
'dsf sdf ds fs dfsdfdf iuh gyj gy y'
' guygiukjh uiygihjo; rdtfyguhijok rftyguhij yguhij'
'dsf sdf ds fs dfsdfdf iuh gyj gy y'
' guygiukjh uiygihjo; rdtfyguhijok rftyguhij yguhij'
'dsf sdf ds fs dfsdfdf iuh gyj gy y'
' guygiukjh uiygihjo; rdtfyguhijok rftyguhij yguhij'
'dsf sdf ds fs dfsdfdf iuh gyj gy y'
' guygiukjh uiygihjo; rdtfyguhijok rftyguhij yguhij',
overflow: TextOverflow.ellipsis,
maxLines: 14,
),
),
],
),
],
));
您需要将 SingleChildScrollView 包装在一个文本小部件中,您将得到您想要的东西。
return MaterialApp(
home: SafeArea(
child: Material(
child: Column(
children: [
Container(
color: Colors.black12,
height: 100,
padding: EdgeInsets.only(bottom: 4),
child: Text(
'dsf sdf ds fs dfsdfdf iuh gyj gy y'
' guygiukjh uiygihjo; rdtfyguhijok rftyguhij yguhij'
'dsf sdf ds fs dfsdfdf iuh gyj gy y'
' guygiukjh uiygihjo; rdtfyguhijok rftyguhij yguhij'
'dsf sdf ds fs dfsdfdf iuh gyj gy y'
' guygiukjh uiygihjo; rdtfyguhijok rftyguhij yguhij'
'dsf sdf ds fs dfsdfdf iuh gyj gy y'
' guygiukjh uiygihjo; rdtfyguhijok rftyguhij yguhij'
'dsf sdf ds fs dfsdfdf iuh gyj gy y'
' guygiukjh uiygihjo; rdtfyguhijok rftyguhij yguhij',
overflow: TextOverflow.ellipsis,
maxLines: 122,
),
),
],
),
),
),
);