Bagaimana cara menghapus latar belakang hitam dari kotak dialog di Android. Gambar menunjukkan masalah.
final Dialog dialog = new Dialog(Screen1.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.themechanger);
android
android-dialog
Programmer
sumber
sumber
Jawaban:
Tambahkan kode ini
Atau yang ini sebagai gantinya:
sumber
dialog.getWindow().setBackgroundDrawable(new ColorDrawableResource(R.color.transparent));
dialog.getWindow().setBackgroundDrawableResource(R.color.transparent);
gunakan di java
Saya harap membantu anda!
sumber
Saya telah menghadapi masalah yang lebih sederhana dan solusi yang saya hasilkan adalah menerapkan TEMA bachground transparan. Tuliskan garis-garis ini dalam gaya Anda
Dan kemudian tambahkan
di file manifes utama Anda, di dalam blok aktivitas dialog.
Ditambah dalam set dialog aktivitas XML Anda
sumber
Entah bagaimana solusi Zacharias tidak bekerja untuk saya, jadi saya telah menggunakan tema di bawah ini untuk menyelesaikan masalah ini ...
Anda dapat mengatur tema ini untuk dialog seperti di bawah ini
Nikmati!!
sumber
Anda dapat menggunakan:
metode. Dan berikut ini adalah dokumen:
sumber
Dialog pop up mengisi warna latar belakang hitam standar atau warna tema sehingga Anda perlu mengatur
TRANSPARENT
latar belakang ke dalam Dialog. Coba kode di bawah ini: -sumber
jika Anda ingin menghancurkan latar belakang dialog yang gelap, gunakan ini
sumber
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { Objects.requireNonNull(alertDialog.getWindow()).setDimAmount(0); }
Satu masalah yang saya temukan dengan semua jawaban yang ada adalah bahwa margin tidak dipertahankan. Ini karena mereka semua menimpa
android:windowBackground
atribut, yang bertanggung jawab atas margin, dengan warna solid. Namun, saya melakukan beberapa penggalian di Android SDK dan menemukan latar belakang jendela default dapat digambar, dan memodifikasinya sedikit untuk memungkinkan dialog transparan.Pertama, salin /platforms/android-22/data/res/drawable/dialog_background_material.xml ke proyek Anda. Atau, cukup salin baris ini ke file baru:
Perhatikan bahwa
android:color
diatur ke?attr/colorBackground
. Ini adalah abu-abu / putih solid default yang Anda lihat. Untuk memungkinkan warna didefinisikan dalamandroid:background
gaya kustom Anda menjadi transparan dan menunjukkan transparansi, yang harus kita lakukan adalah perubahan?attr/colorBackground
untuk@android:color/transparent
. Sekarang akan terlihat seperti ini:Setelah itu, buka tema Anda dan tambahkan ini:
Pastikan untuk mengganti
newly_created_background_name
dengan nama sebenarnya dari file yang dapat ditarik yang baru saja Anda buat, dan gantisome_transparent_color
dengan latar belakang transparan yang diinginkan.Setelah itu yang perlu kita lakukan hanyalah mengatur temanya. Gunakan ini saat membuat
AlertDialog.Builder
:Maka cukup buat, buat, dan tampilkan dialog seperti biasa!
sumber
Solusi yang sama dengan zGnep tetapi menggunakan xml:
sumber
Coba ini di kode Anda:
pasti akan berfungsi ... dalam kasus saya ...! temanku
sumber
Inilah yang saya lakukan untuk mencapai transparansi dengan AlertDialog.
Dibuat gaya khusus:
Lalu buat dialog dengan:
sumber
Dalam kasus saya solusi berfungsi seperti ini:
Dan Selain itu dalam Xml dialog khusus:
sumber
gunakan kode ini berfungsi dengan saya:
sumber
Atur kode gaya ini dalam gaya
Dan cukup ubah false menjadi true di bawah garis
Ini akan meredupkan latar belakang Anda.
sumber
Perhatian: Jangan gunakan pembuat untuk mengubah latar belakang.
mengubah
Saat menggunakan Dialog.builder, itu tidak memberikan
getWindow()
opsi di dalamnya.sumber
ini caraku, kamu bisa coba!
sumber
Jika Anda memperpanjang
DialogFrament
kelas, Anda dapat mengatur tema dengan:Dan kemudian buat tema khusus di file styles.xml Anda (lihat jawaban LongLv untuk parameter)
Jangan lupa untuk menambahkan
<item name="android:windowCloseOnTouchOutside">true</item>
jika Anda ingin dialog ditutup jika pengguna menyentuh di luar dialog.sumber
Bagi siapa pun yang menggunakan dialog khusus dengan kelas khusus, Anda perlu mengubah transparansi di kelas, tambahkan baris ini di onCreate ():
sumber
dialog.getWindow (). setBackgroundDrawable (ColorDrawable baru (ContextCompat.getColor (ctx, android.R.color.transparent)));
sumber
Pastikan
R.layout.themechanger
tidak memiliki warna latar belakang karena secara default dialog memiliki warna latar belakang standar.Anda juga perlu menambahkan
dialog.getWindow().setBackgroundDrawable(newColorDrawable(Color.TRANSPARENT));
Dan akhirnya
sumber