flutter使用LayoutBuilder包裹Text组件之后Text的overflow属性就失效了
这是因为LayoutBuilder会根据父组件的约束条件重新计算子组件的大小和位置,而Text的overflow属性需要在子组件的大小确定之后才能生效。解决这个问题的方法是在LayoutBuilder的回调函数中使用SizedBox来限制Text的大小,然后再将Text放进一个带有overflow属性的组件中,如Expanded或者OverflowBox。示例代码如下:
LayoutBuilder(
builder: (BuildContext context, BoxConstraints constraints) {
return SizedBox(
width: constraints.maxWidth,
height: constraints.maxHeight,
child: Text(
'这是一段很长很长的文本',
overflow: TextOverflow.ellipsis,
),
);
},
);
LayoutBuilder(
builder: (BuildContext context, BoxConstraints constraints) {
return Expanded(
child: SizedBox(
width: constraints.maxWidth,
child: Text(
'这是一段很长很长的文本',
overflow: TextOverflow.ellipsis,
),
),
);
},
);
原文地址: https://www.cveoy.top/t/topic/bV3w 著作权归作者所有。请勿转载和采集!