Контейнер Flutter с сетевым изображением и выровненным контейнером внизу
Итак, мне нужно отобразить изображение в контейнере и некоторое описание внизу контейнера. Изображение должно занимать весь экран. Изображение загружается из сети.
Это мой исходный подход
Stack(
fit: StackFit.expand,
children: <Widget>[
Container(
child: ClipRRect(
child: Image.network(category.imageURL,
height: maxHeight * 1, fit: BoxFit.cover),
),
),
Align(
alignment: Alignment.bottomLeft,
child: getNameAndDeleteSection(context),
)
],
),
),
где getNameAndDeleteSection - это в основном это
return Container(
color: Colors.yellow,
margin: EdgeInsets.fromLTRB(5, 0, 5, 0),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Text(
category.name,
maxLines: 1,
style: TextStyle(color: Colors.white),
),
Spacer(),
IconButton(
icon: Icon(Icons.delete, size: 18.0, color: Colors.white,),
onPressed: () {
deleteTap(category);
},
)
],
),
);
}
Когда сетевой образ загружен, он скрывает желтый контейнер, но сохраняет дочерние элементы. Я хочу, чтобы изображение оставалось на заднем плане, а желтый контейнер - над ним. Идея состоит в том, что желтый контейнер будет иметь своего рода прозрачный цвет, чтобы он выглядел плавающим на изображении.
Максимальная высота - это высота, предоставляемая listView. Я пытаюсь сделать UI адаптивным. Любая помощь?
2 ответа
Почему бы не поместить свое изображение как BoxDecoration в контейнер следующим образом:
Stack(
children: <Widget>[
Container(
decoration: BoxDecoration(
image: DecorationImage(
image: NetworkImage(url), fit: BoxFit.cover,
),
),
),
Align(
alignment: Alignment.bottomLeft,
child: getNameAndDeleteSection(context),
)
],
),
Вместо использования контейнера, который всегда кажется скрытым сетевым образом, я решил использовать карту, которая будет охватывать контейнер. И это сработало.
Итак, изменение было сделано в getNameAndDeleteSection и, по сути, весь код заключен в Card. И бинго, это сработало.