Flutter 颤振柔性文本在列中溢出
我正在创建一个列表互动程序,其中包含从internet下载的主要图像。 图像可以是横向的,也可以是纵向的。 基于图像大小,可用于标题文本更改的空间 当图像从internet下载时,可用空间将重新调整 为了解决这个问题,我使用了flexiblewidget和TextOverflow.ellipsis。 在我将Flexible添加到一个列以添加一个子标题之前,这一切都很好 现在,我得到了较长的标题文本溢出错误 你知道怎么解决这个问题吗Flutter 颤振柔性文本在列中溢出,flutter,text,overflow,Flutter,Text,Overflow,我正在创建一个列表互动程序,其中包含从internet下载的主要图像。 图像可以是横向的,也可以是纵向的。 基于图像大小,可用于标题文本更改的空间 当图像从internet下载时,可用空间将重新调整 为了解决这个问题,我使用了flexiblewidget和TextOverflow.ellipsis。 在我将Flexible添加到一个列以添加一个子标题之前,这一切都很好 现在,我得到了较长的标题文本溢出错误 你知道怎么解决这个问题吗 Row( crossAxisAlignment: C
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Container(
constraints: BoxConstraints(minHeight: 50, maxHeight: 100),
child: ClipRRect(
borderRadius: BorderRadius.only(
topLeft: Radius.circular(8),
bottomLeft: Radius.circular(8)),
child: FadeInImage(
placeholder: AssetImage('images/placeholder-image.png'),
image: NetworkImage(post.imageURL),
fit: BoxFit.cover,
),
),
),
Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Flexible(
child: Container(
padding: const EdgeInsets.fromLTRB(8, 8, 5, 5),
child: new Text(
post.title,
overflow: TextOverflow.ellipsis,
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 15,
color: Theme.of(context).primaryColor),
),
),
),
],
),
],
)
行(
crossAxisAlignment:crossAxisAlignment.start,
儿童:[
容器(
约束:框约束(最小高度:50,最大高度:100),
孩子:ClipRRect(
borderRadius:仅限borderRadius(
左上:半径。圆形(8),
左下角:半径。圆形(8)),
孩子:法代尼玛(
占位符:AssetImage('images/placeholder image.png'),
image:NetworkImage(post.imageURL),
适合:BoxFit.cover,
),
),
),
纵队(
mainAxisSize:mainAxisSize.min,
儿童:[
灵活的(
子:容器(
填充:LTRB(8,8,5,5)中的常量边集,
儿童:新文本(
职务,
溢出:TextOverflow.省略号,
样式:TextStyle(
fontWeight:fontWeight.bold,
尺寸:15,
颜色:主题(上下文)。原色),
),
),
),
],
),
],
)
用柔性
包装列
,而不是用柔性
包装文本
:
Flexible(
child: Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Container(
padding: const EdgeInsets.fromLTRB(8, 8, 5, 5),
child: new Text(
post.title,
overflow: TextOverflow.ellipsis,
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 15,
color: Theme.of(context).primaryColor),
),
),
],
),
),
灵活(
子:列(
mainAxisSize:mainAxisSize.min,
儿童:[
容器(
填充:LTRB(8,8,5,5)中的常量边集,
儿童:新文本(
职务,
溢出:TextOverflow.省略号,
样式:TextStyle(
fontWeight:fontWeight.bold,
尺寸:15,
颜色:主题(上下文)。原色),
),
),
],
),
),
使用扩展的
class MyWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Container(
constraints: BoxConstraints(minHeight: 50, maxHeight: 100),
child: ClipRRect(
borderRadius: const BorderRadius.horizontal(
left: Radius.circular(8),
),
child: FadeInImage(
placeholder: NetworkImage('https://picsum.photos/100'),
image: NetworkImage('https://picsum.photos/100'),
fit: BoxFit.cover,
),
),
),
Expanded(
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 8.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'Title',
overflow: TextOverflow.ellipsis,
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 15,
color: Colors.white,
),
),
Text(
'Subtitle',
overflow: TextOverflow.ellipsis,
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 15,
color: Colors.white,
),
),
],
),
),
),
],
);
}
}
类MyWidget扩展了无状态Widget{
@凌驾
小部件构建(构建上下文){
返回行(
crossAxisAlignment:crossAxisAlignment.start,
儿童:[
容器(
约束:框约束(最小高度:50,最大高度:100),
孩子:ClipRRect(
borderRadius:常量borderRadius.horizontal(
左:半径。圆形(8),
),
孩子:法代尼玛(
占位符:NetworkImage('https://picsum.photos/100'),
图像:NetworkImage('https://picsum.photos/100'),
适合:BoxFit.cover,
),
),
),
扩大(
孩子:填充(
填充:常量边集。对称(水平:8.0),
子:列(
crossAxisAlignment:crossAxisAlignment.start,
儿童:[
正文(
“头衔”,
溢出:TextOverflow.省略号,
样式:TextStyle(
fontWeight:fontWeight.bold,
尺寸:15,
颜色:颜色,白色,
),
),
正文(
"副标题",,
溢出:TextOverflow.省略号,
样式:TextStyle(
fontWeight:fontWeight.bold,
尺寸:15,
颜色:颜色,白色,
),
),
],
),
),
),
],
);
}
}