Я пытаюсь установить фоновое изображение для домашней страницы. Я получаю изображение с начала экрана и заполняю ширину, но не высоту. Мне что-то не хватает в моем коде? Существуют ли стандарты изображения для флаттера? Масштабируются ли изображения в зависимости от разрешения экрана каждого телефона?
class BaseLayout extends StatelessWidget{
@override
Widget build(BuildContext context){
return new Scaffold(
body: new Container(
child: new Column(
mainAxisAlignment: MainAxisAlignment.start,
children: [
new Image.asset("assets/images/bulb.jpg")
]
)
)
);
}
}
Ответы:
Я не уверен, что понимаю ваш вопрос, но если вы хотите, чтобы изображение занимало весь экран, вы можете использовать a
DecorationImage
с подгонкойBoxFit.cover
.Что касается вашего второго вопроса, вот ссылка на документацию о том, как встраивать изображения ресурсов в зависимости от разрешения в ваше приложение.
источник
constraints: BoxConstraints.expand()
DecorationImage(image: Image.network("http://example.com/image.jpg").image, ...)
width: double.infinity
в Контейнер с изображением.Если вы используете в
Container
качестве телаScaffold
, его размер будет соответственно размеру его дочернего элемента, и обычно это не то, что вам нужно, когда вы пытаетесь добавить фоновое изображение в свое приложение.Глядя на этот другой вопрос, @ collin-jackson также предлагал использовать
Stack
вместо негоContainer
как тело,Scaffold
и он определенно делает то, чего вы хотите достичь.Так выглядит мой код
источник
Вы можете использовать
DecoratedBox
.Вывод:
источник
Вы можете использовать,
Stack
чтобы растянуть изображение на весь экран.Примечание: при желании, если вы используете
Scaffold
, вы можете поместитьStack
внутрьScaffold
с или без вAppBar
соответствии с вашими потребностями.источник
ShaderMask
, поэтому не получится добавитьimage:
имя.Я смог применить фон под
Scaffold
(и даже под нимAppBar
), поместивScaffold
под aStack
и установив aContainer
в первом «слое» с набором фонового изображения иfit: BoxFit.cover
свойством.Оба элемента
Scaffold
andAppBar
должны иметь значениеbackgroundColor
as,Color.transparent
а значениеelevation
ofAppBar
должно быть равно 0 (нулю).Вуаля! Теперь у вас есть красивый фон под всей Scaffold и AppBar! :)
источник
Мы можем использовать Контейнер и пометить его высоту как бесконечность.
Вывод:
источник
это также работает внутри контейнера.
источник
Чтобы установить фоновое изображение без сжатия после добавления дочернего элемента, используйте этот код.
источник
источник