Di Android, setiap View
subclass memiliki setVisibility()
metode yang memungkinkan Anda mengubah visibilitas suatu View
objek
Ada 3 pilihan pengaturan visibilitas:
- Visible: Menampilkan yang
View
terlihat di dalam tata letak - Tak terlihat: Menyembunyikan
View
, tetapi meninggalkan celah yang setara dengan apa yangView
akan ditempati jika terlihat - Hilang: Menyembunyikan
View
, dan menghapus seluruhnya dari tata letak. Seolah-olah ituheight
danwidth
dulu0dp
Apakah ada sesuatu yang setara di atas untuk Widget di Flutter?
Untuk referensi cepat: https://developer.android.com/reference/android/view/View.html#attr_android:visibility
sumber
IgnorePointer
juga, jika tidak, pengguna masih dapat memicunya.Tak terlihat : Widget mengambil ruang fisik di layar tetapi tidak terlihat oleh pengguna.
Hilang : Widget tidak memakan ruang fisik apa pun dan benar-benar hilang.
Contoh tak terlihat
Hilang contoh
Sebagai alternatif, Anda dapat menggunakan
if
kondisi untuk yang tidak terlihat dan hilang.sumber
Untuk berkolaborasi dengan pertanyaan dan menunjukkan contoh menggantinya dengan yang kosong
Container()
.Berikut contohnya di bawah ini:
sumber
Flutter sekarang berisi Widget Visibilitas yang harus Anda gunakan untuk menampilkan / menyembunyikan widget. Widget juga dapat digunakan untuk beralih di antara 2 widget dengan mengganti penggantinya.
Widget ini dapat mencapai salah satu status terlihat, tidak terlihat, hilang, dan banyak lagi.
sumber
Coba
Offstage
widgetnyaJika atribut
offstage:true
tidak menempati ruang fisik dan tidak terlihat,Jika atribut
offstage:false
itu akan menempati ruang fisik dan terlihatsumber
sumber
Di flutter 1.5 dan Dart 2.3 untuk visibilitas hilang, Anda dapat menyetel visibilitas dengan menggunakan pernyataan if dalam koleksi tanpa harus menggunakan container.
misalnya
sumber
Anda dapat merangkum widget apa pun dalam kode Anda dengan widget baru yang disebut (Visibilitas), ini dari lampu kuning di sisi paling kiri widget yang Anda inginkan agar tidak terlihat
contoh: katakanlah Anda ingin membuat baris tidak terlihat:
Anak dari widget yang baru dibuat (Visibility Widget) adalah Widget yang Anda inginkan agar tidak terlihat
Saya berharap ini akan membantu seseorang di masa depan
sumber
Untuk pemula coba ini juga.
sumber
Memperbarui
Flutter sekarang memiliki widget Visibilitas . Untuk menerapkan solusi Anda sendiri, mulailah dengan kode di bawah ini.
Buat widget sendiri.
tunjukan Sembunyikan
tampilkan / hapus
Ngomong-ngomong, apakah ada yang punya nama yang lebih baik untuk widget di atas?
Lebih Banyak Bacaan
sumber
Seperti yang telah disorot oleh @CopsOnRoad, Anda dapat menggunakan widget Visibility. Tetapi, jika Anda ingin mempertahankan statusnya, misalnya, jika Anda ingin membuat viewpager dan membuat tombol tertentu muncul dan menghilang berdasarkan halaman, Anda dapat melakukannya dengan cara ini
sumber
Mungkin Anda bisa menggunakan fungsi Navigator seperti ini
Navigator.of(context).pop();
sumber
Salah satu solusinya adalah menyetel properti warna widget ini ke Colors.transparent. Misalnya:
sumber
IconButton
masih menerima klik dan menempati ruang. Mohon edit atau hapus jawaban ini sebelum orang-orang memberikan suara negatif.