Saya mencoba mengatur gambar latar belakang untuk halaman rumah. Saya mendapatkan tempat gambar dari awal layar dan mengisi lebar tetapi bukan tingginya. Apakah saya melewatkan sesuatu di kode saya? Apakah ada standar gambar untuk flutter? Apakah gambar diskalakan berdasarkan resolusi layar masing-masing ponsel?
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")
]
)
)
);
}
}
Jawaban:
Saya tidak yakin saya mengerti pertanyaan Anda, tetapi jika Anda ingin gambar memenuhi seluruh layar, Anda dapat menggunakan a
DecorationImage
dengan ukuran yang sesuaiBoxFit.cover
.Untuk pertanyaan kedua Anda, berikut ini link ke dokumentasi tentang cara menyematkan gambar aset yang bergantung pada resolusi ke dalam aplikasi Anda.
sumber
constraints: BoxConstraints.expand()
DecorationImage(image: Image.network("http://example.com/image.jpg").image, ...)
width: double.infinity
ke Container dengan gambar.Jika Anda menggunakan a
Container
sebagai badan dariScaffold
, ukurannya akan sesuai dengan ukuran anaknya, dan biasanya bukan itu yang Anda inginkan saat mencoba menambahkan gambar latar belakang ke aplikasi Anda.Melihat pertanyaan lain ini , @ collin-jackson juga menyarankan untuk menggunakan
Stack
alih-alihContainer
sebagai tubuhScaffold
dan pasti melakukan apa yang ingin Anda capai.Seperti inilah tampilan kode saya
sumber
Anda bisa menggunakan
DecoratedBox
.Keluaran:
sumber
Anda dapat menggunakan
Stack
untuk membuat gambar membentang ke layar penuh.Catatan: Secara opsional jika menggunakan
Scaffold
, Anda dapat meletakkan bagianStack
dalamScaffold
dengan atau tanpaAppBar
sesuai dengan kebutuhan Anda.sumber
ShaderMask
, oleh karena itu tidak akan berhasil memasukkanimage:
nama.Saya bisa menerapkan latar belakang di bawah
Scaffold
(dan bahkan ituAppBar
) dengan meletakkan diScaffold
bawah aStack
dan mengaturContainer
di "lapisan" pertama dengan set gambar latar belakang danfit: BoxFit.cover
properti.Baik
Scaffold
danAppBar
harus memilikibackgroundColor
himpunan sebagaiColor.transparent
danelevation
dariAppBar
harus 0 (nol).Voilà! Sekarang Anda memiliki latar belakang yang bagus di bawah seluruh Perancah dan AppBar! :)
sumber
Kita bisa menggunakan Container dan menandai tingginya sebagai tak terbatas
Keluaran:
sumber
ini juga berfungsi di dalam wadah.
sumber
Untuk menyetel gambar latar belakang tanpa menyusut setelah menambahkan anak, gunakan kode ini.
sumber
sumber