【问题标题】:How to display default image in UserAccountsDrawerHeader if user image not found from network?如果从网络中找不到用户图像,如何在 UserAccountsDrawerHeader 中显示默认图像?
【发布时间】:2021-09-17 06:26:24
【问题描述】:

如果从网络上找不到用户图像,我想显示资产中的默认图像,那么我该怎么做呢?

下面的代码是用于抽屉的。

class MyDrawer extends StatefulWidget {
  final LogedinUser user;
  const MyDrawer({Key? key, required this.user}) : super(key: key);

  @override
  _MyDrawerState createState() => _MyDrawerState();
}

class _MyDrawer1State extends State<MyDrawer1> {
  final imageUrl = Api().uploadUrl;

  @override
  Widget build(BuildContext context) {
    return Drawer(
      child: Column(
        children: [
          DrawerHeader(
            padding: EdgeInsets.zero,
            child: UserAccountsDrawerHeader(
              decoration: BoxDecoration(
                  gradient: LinearGradient(colors: [
                const Color(0xFFee436e),
                const Color(0xFFF37D71),
              ])),
              margin: EdgeInsets.zero,
              accountName: Text(
                widget.user.name.toString(),
                textScaleFactor: 1.5,
              ),
              accountEmail: Text(widget.user.email.toString()),
              currentAccountPicture: CircleAvatar(
                backgroundImage: NetworkImage("$imageUrl" + widget.user.avatar),
                //AssetImage('assets/logos/tempprofile.png'),
              ),
            ),
          ),
          Expanded(
            child: ListView(
              padding: EdgeInsets.zero,
              children: [],
            ),
          )
        ],
      ),
    );
  }
}

图像显示完美,但如果图像不可用,我想显示资产中的默认图像。

【问题讨论】:

  • 你的意思是当user.avatar没有设置或者找不到图片的时候?
  • 是的,正如你所说的

标签: flutter api


【解决方案1】:

检查 imageUrl 是否为空

Widget getImage(){
     if(imageUrl != null && imageUrl.isNotEmpty){
          return NetworkImage("$imageUrl");
        }else{
          return AssetImage('assets/logos/tempprofile.png');
        }
    }

你可以这样做

currentAccountPicture: CircleAvatar(
                backgroundImage: getImage(),
              ),

【讨论】:

    猜你喜欢
    • 2015-08-07
    • 2023-02-05
    • 2012-07-23
    • 1970-01-01
    • 2018-03-11
    • 2021-01-12
    • 2013-02-02
    • 1970-01-01
    • 2018-01-05
    相关资源
    最近更新 更多