【发布时间】:2019-10-16 08:08:57
【问题描述】:
我试图在我的应用程序的主屏幕顶部显示CircleAvatar,但我遇到了一个相当愚蠢的问题。我无法弄清楚如何提供Image 类的对象(这是用户的属性)作为ImageProvider,这就是CircleAvatar expects。是否有一种简单的方法可以在这里“进行类型转换”或者人们已经解决了这个问题?
class _HomePageState extends State<PictureShowcaseHome>{
Appuser appuser = new Appuser();
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
leading: InkWell(
child: CircleAvatar(
backgroundImage: appuser.img,
child: Text(appuser.name.substring(0,1).toUpperCase()),
) ,
),
...
为简化起见,假设Appuser 仅具有以下属性:
class Appuser{
String name;
Image img;
Appuser(){
this.name = "Unknown user";
this.img = Image.asset('assets/imgs/default1.jpg');
}
}
我的想法是我有一个包含在资产中的默认图像,但用户可以用他们自己的图像替换它(似乎是一个相当标准的想法)。我考虑在Appuser 的构造函数中切换到AssetImage img; 和img = new AssetImage('assets/imgs/default1.jpg');,但这似乎有点倒退。当我在用户信息详细信息页面上显示用户图像时(我想只有一个ListTile( title: appuser.img,),)或者当我让用户用相机拍摄新的用户照片时,它也会让我陷入“相反”的问题。出于这些目的,最简单的方法是直接使用 Image 类的对象,而不是 AssetImage。
还是我以某种方式看错了?
【问题讨论】: