Saya memiliki widget Flutter Container dan saya menentukan warna untuknya (merah muda), tetapi untuk beberapa alasan, warna di BoxDecoration menimpanya (hijau). Mengapa?

new Container(
  color: Colors.pink,
  decoration: new BoxDecoration(
    borderRadius: new BorderRadius.circular(16.0),
    color: Colors.green,
  ),
);
47
Mary 17 Agustus 2017, 02:44

4 jawaban

Jawaban Terbaik

color Container adalah kependekan dari color BoxDecoration, jadi color BoxDecoration di properti decoration Container menggantikan color Container-nya.

29
Mary 16 Agustus 2017, 23:47

Argumen color and decoration tidak dapat diberikan keduanya, karena berpotensi menghasilkan gambar dekorasi di atas warna latar belakang. Untuk menyediakan dekorasi dengan warna, Anda dapat menggunakan kode di bawah ini.

decoration: BoxDecoration(color: Colors.red).
1
Paresh Mangukiya 3 November 2020, 13:29

Tim Flutter mengatakan bahwa properti warna di BoxDecoration() cukup sering digunakan dalam menerapkan warna latar belakang ke widget Container. Karena itu, mereka telah menempatkan singkatan terpisah untuk properti warna di widget Wadah. Jadi, ketika kita menggunakan properti warna dan properti warna BoxDecoration() di widget Wadah yang sama, sebuah pernyataan akan dilontarkan sebagai berikut:

Cannot provide both a color and a decoration
The color argument is just a shorthand for "decoration: new BoxDecoration(color: color)".
0
Phan Hero 21 Juni 2020, 05:04

Dari dokumen:

Argumen color dan decoration tidak dapat diberikan keduanya, karena berpotensi menghasilkan gambar dekorasi di atas warna latar belakang. Untuk memberikan dekorasi dengan warna, gunakan decoration: BoxDecoration(color: color).

Dan jika Anda hanya menggunakan Container untuk memberikan warna, saya sarankan Anda menggunakan ColoredBox yang lebih dioptimalkan daripada Container biasa.

ColoredBox(
  color: Colors.red, // color
  child: ...,
)

BoxDecoration digunakan untuk benar-benar melukis warna latar belakang. Widget BoxDecoration mencakup banyak kasus selain hanya melukis warna latar belakang, dan tidak seefisien widget ColoredBox baru, yang hanya melukis warna latar belakang.

4
CopsOnRoad 26 Mei 2020, 13:38