Как разместить фиктивное изображение в CircleAvatar перед извлечением основного изображения из базы данных облачного хранилища? - PullRequest
0 голосов
/ 19 июня 2020

Размещение фиктивного изображения внутри CircleAvatar. Фиктивное изображение заменяется основным изображением, которое извлекается из базы данных облачного хранилища.

Здесь я пытаюсь создать изображение профиля, которое содержит профиль пользователя, для которого я использовал CircleAvatar, который будет хранить в нем изображение. Получение изображения выполнено хорошо и работает правильно. Но теперь я перепутал с некоторым «вопросом», если технически URL-адрес профиля не сохранен в базе данных firestore, тогда он выдаст ошибку. Итак, чтобы остановить предотвращение ошибки, мне нужно использовать фиктивное изображение, которое будет заменено основным изображением, полученным из базы данных облачного хранилища.

Теперь вопрос: - Как я могу разместить фиктивное изображение внутри CircleAvatar и это фиктивное изображение заменяется основным изображением

class DetailPage extends StatefulWidget {
  final DocumentSnapshot post;
  DetailPage({this.post});

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

class _DetailPageState extends State<DetailPage> {


  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Detail'),
      ),
      backgroundColor: Colors.white,
      body:
         Form(
          child: ListView(
            scrollDirection: Axis.vertical,
            children: <Widget>[
              SizedBox(
                height: 20.0,
              ),
              Row(
                mainAxisAlignment: MainAxisAlignment.center,
                children: <Widget>[
                  Align(
                    alignment: Alignment.center,
                    child: CircleAvatar(
                      radius:73 ,
                      backgroundColor: Colors.blue,
                      child: ClipOval(
                        child: new SizedBox(
                          width: 125,
                          height:125,
                          child: Image.network(widget.post.data['image'],height: 108,fit: BoxFit.fill,),

                        ),
                        ),
                      ),
                    ),
                ],
              ),

 ],
          ),
        ),
    );
  }
}

1 Ответ

1 голос
/ 19 июня 2020

Вы можете это посмотреть. это поддерживает требуемые функции.

https://pub.dev/packages/cached_network_image

вы можете поместить любой виджет в заполнитель. а также поддерживает индикаторы ошибок

CachedNetworkImage(
        imageUrl: "http://via.placeholder.com/350x150",
        placeholder: (context, url) => CircularProgressIndicator(),
        errorWidget: (context, url, error) => Icon(Icons.error),
     ),
...