Flutter 我能';当我指定背景图片时,我不会让CircleAvatar变成椭圆形
我正在尝试构建一个基本的ListView,其中填充ListTiles,并有一个带有照片的CircleAvatar(前导或尾随) 我的代码是:Flutter 我能';当我指定背景图片时,我不会让CircleAvatar变成椭圆形,flutter,Flutter,我正在尝试构建一个基本的ListView,其中填充ListTiles,并有一个带有照片的CircleAvatar(前导或尾随) 我的代码是: body: ListView.builder( itemCount: 18, itemBuilder: (ctx, i) { return Padding( padding: EdgeInsets.all(5), child: ListTile( trailing:
body: ListView.builder(
itemCount: 18,
itemBuilder: (ctx, i) {
return Padding(
padding: EdgeInsets.all(5),
child: ListTile(
trailing:
CircleAvatar(
radius: 50.0,
// child: Text('hi'),
backgroundImage:
AssetImage(
'assets/images/Survivor-12.jpg',
),
),
title: Text('Name of the Person $i'),
subtitle: Text('Assigned to: Bob'),
leading: Text(i.toString(), style: TextStyle(fontSize: 24)),
),
);
},
但是,输出如下所示:
如何使图像成为实际的圆?如果我删除它并用文本小部件替换它,它会工作。为了使图像处于实际的圆圈中,您可以将CircleAvatar小部件包装在容器小部件中,并使用装饰属性定义其形状,如下所示
ListTile(
trailing: ClipOval(
child: Container(
color: Colors.white,
height: 70,
width: 100,
child: Image.network(
imageUrl[0],
),
),
),
title: Text('Name of the Person $i'),
subtitle: Text('Assigned to: Bob'),
leading: Text(i.toString(), style: TextStyle(fontSize: 24)),
),
ListView.builder(
itemCount: 18,
itemBuilder: (ctx, i) {
return Padding(
padding: EdgeInsets.all(5),
child: ListTile(
trailing: Container(
height: 55.0,
width: 55.0,
decoration: BoxDecoration(
shape: BoxShape.circle,
),
child: CircleAvatar(
radius: 30.0,
backgroundImage: NetworkImage(
'https://buildflutter.com/wp-content/uploads/2018/04/buildflutter_255.png'),
),
),
title: Text('Name of the Person $i'),
subtitle: Text('Assigned to: Bob'),
leading: Text(i.toString(), style: TextStyle(fontSize: 24)),
),
);
},
),
看起来列表类型容器更改了呈现方式:如果我为
列()更改ListView()
,则CircleAvatar
将在我的应用程序中正确呈现
下面是一个提示:
在横轴中,子对象需要填充ListView
为了解决这个问题,我将CircleAvatar
包装在行中,这将填充列表视图的水平空间,并相应地调整行的内容。列表磁贴
可能需要进一步抖动,以使其正确模拟行
ListView(
儿童:[
划船(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
圆形(
半径:60.0,
背景图片:avatarImage??avatarImage,
),
],
),
//...
],
);