Próbuję ustawić obraz tła dla strony głównej. Otrzymuję miejsce obrazu od początku ekranu i wypełniam szerokość, ale nie wysokość. Czy coś mi brakuje w kodzie? Czy istnieją standardy obrazu dla trzepotania? Czy obrazy skalują się na podstawie rozdzielczości ekranu każdego telefonu?
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")
]
)
)
);
}
}
Odpowiedzi:
Nie jestem pewien, czy rozumiem Twoje pytanie, ale jeśli chcesz, aby obraz wypełnił cały ekran, możesz użyć
DecorationImage
dopasowaniaBoxFit.cover
.Drugie pytanie to łącze do dokumentacji dotyczącej osadzania w aplikacji obrazów zasobów zależnych od rozdzielczości.
źródło
constraints: BoxConstraints.expand()
DecorationImage(image: Image.network("http://example.com/image.jpg").image, ...)
width: double.infinity
do kontenera z obrazem.Jeśli użyjesz a
Container
jako treści elementuScaffold
, jego rozmiar będzie odpowiadał rozmiarowi jego dziecka i zwykle nie jest to tym, czego chcesz, próbując dodać obraz tła do swojej aplikacji.Patrząc na to drugie pytanie, @ collin-jackson również sugerował, aby użyć go
Stack
zamiastContainer
ciałaScaffold
i zdecydowanie robi to, co chcesz osiągnąć.Tak wygląda mój kod
źródło
Możesz użyć
DecoratedBox
.Wynik:
źródło
Możesz użyć,
Stack
aby rozciągnąć obraz na pełny ekran.Uwaga: Opcjonalnie, jeśli używasz a
Scaffold
, możesz włożyćStack
wnętrzeScaffold
z lub bez, wAppBar
zależności od potrzeb.źródło
ShaderMask
, dlatego nie zadziałałoby umieszczanieimage:
nazwy.Udało mi się zastosować tło poniżej
Scaffold
(a nawet toAppBar
), umieszczającScaffold
pod aStack
i ustawiając aContainer
w pierwszej „warstwie” z ustawionym obrazem tła ifit: BoxFit.cover
właściwością.Zarówno
Scaffold
i, jak iAppBar
muszą miećbackgroundColor
ustawione jakoColor.transparent
ielevation
ofAppBar
muszą wynosić 0 (zero).Voilà! Teraz masz ładne tło pod całym rusztowaniem i AppBarem! :)
źródło
Możemy użyć kontenera i oznaczyć jego wysokość jako nieskończoność
Wynik:
źródło
działa to również wewnątrz pojemnika.
źródło
Aby ustawić obraz tła bez zmniejszania po dodaniu dziecka, użyj tego kodu.
źródło
źródło