image - Flutter CircleAvatar - 使用 Image 对象作为(背景)图像/将其类型转换为 ImageProvider
问题描述
我试图CircleAvatar
在我的应用程序主屏幕的顶部显示一个,但我遇到了一个相当愚蠢的问题。我无法弄清楚如何将类的对象Image
(即用户的属性)提供为ImageProvider
,这是CircleAvatar
预期的。有没有一种简单的方法可以在这里“打字”或人们解决这个问题的其他方式?
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()),
) ,
),
...
为简化起见,假设 anAppuser
仅具有以下属性:
class Appuser{
String name;
Image img;
Appuser(){
this.name = "Unknown user";
this.img = Image.asset('assets/imgs/default1.jpg');
}
}
我的想法是我有一个包含在资产中的默认图像,但用户可以用他们自己的图像替换它(似乎是一个相当标准的想法)。我考虑在构造函数中切换到AssetImage img;
and ,但这似乎是倒退的。当我在用户信息详细信息页面上显示用户图像(我想只有一个)或当我让用户用相机拍摄新的用户照片时,它也会让我陷入“相反”的问题。出于这些目的,直接使用 class 对象而不是.img = new AssetImage('assets/imgs/default1.jpg');
Appuser
ListTile( title: appuser.img,),
Image
AssetImage
还是我以某种方式看错了?
解决方案
这个
Image.asset('assets/imgs/default1.jpg').image
应该管用。
为清楚起见,Image 类具有 ImageProvider 属性。只需使用 .image 和任何给定的 Image 类来获取 ImageProvider。这适用于 Image.asset、.file、.network 和 .memory
推荐阅读
- bash - 从 ssh 会话中检测 user@hostname
- python - 如何避免 python selenium 中的 StaleElementReferenceException 错误
- nginx - 如何在我的网址中隐藏“.py”“.cgi”“.pl”?
- flutter - 如何在不使用当前用户 ID 的情况下从 Firestore 获取单个文档?
- r - 数据类型转换数值到字符串/字符
- masstransit - MassTransit - 在传送单活动中重新传递消息
- c++ - 由于 C++ 中的解构函数,xcode 中出现未精炼的符号错误
- c++ - constexpr 构造函数中的 static_assert
- javascript - 无法设置远程应答 sdp:在错误状态下调用:稳定
- image - 获取图像的实际位深度