Saya telah menemukan bahwa ProgressDialog
sekarang sudah usang. Apa yang akan menjadi alternatif untuk digunakan selain itu ProgressBar
. Saya menggunakan android studio versi 2.3.3.
ProgressDialog progressDialog=new ProgressDialog(this);
progressDialog.show();
Jawaban:
Ya,
API level 26
itu sudah usang. Sebagai gantinya, Anda bisa menggunakannyaprogressBar
.Untuk membuatnya secara terprogram:
Pertama, dapatkan referensi ke tata letak root
atau
Kemudian tambahkan bilah progres
Untuk menampilkan bilah progres
Untuk menyembunyikan bilah progres
Untuk menonaktifkan interaksi pengguna, Anda hanya perlu menambahkan kode berikut
Untuk mendapatkan kembali interaksi pengguna Anda hanya perlu menambahkan kode berikut
Hanya untuk referensi di masa mendatang, ubah
android.R.attr.progressBarStyleSmall
keandroid.R.attr.progressBarStyleHorizontal
.Kode di bawah ini hanya berfungsi di atas
API level 21
Untuk membuatnya melalui xml:
Dalam aktivitas Anda
Menampilkan / menyembunyikan bilah kemajuan adalah sama
Berikut ini contoh gambar tampilannya:
Untuk lebih jelasnya:
1. Referensi satu
2. Referensi Dua
sumber
Anda dapat menggunakan
AlertDialog
sebagaiProgressDialog
merujuk kode di bawah ini untukProgressDialog
. Fungsi ini perlu Anda panggil setiap kali Anda menampilkan dialog progres.Kode:
Keluaran:
sumber
AlertDialog
sebaiknya tidak digunakan di sini.Sudah usang
Android O
karenaGoogle
standar UI barusumber
Anda cukup mendesain antarmuka xml untuk progressbar Anda dan meneruskannya sebagai tampilan ke AlertDialog, lalu tampilkan atau abaikan dialog kapan pun Anda mau.
progress.xml
Kode kode yang menampilkan dialog progres. Cukup salin kode ini dan rekatkan fragmen Anda.
Kemudian panggil metode tersebut kapan saja Anda ingin menampilkan progressdialog dan berikan true sebagai argumen untuk menunjukkannya atau salah untuk mengabaikan dialog.
sumber
this
, sehingga terlihat seperti ini.AlertDialog.Builder builder = new AlertDialog.Builder(this);
Pastikan Anda menyalin kode yang benar.layout_toEndOf
dapat dihapus karena bukan untukLinearLayout
ProgressBar sangat sederhana dan mudah digunakan, saya bermaksud membuat ini sama dengan dialog progres sederhana. Langkah pertama adalah Anda dapat membuat tata letak xml dari dialog yang ingin Anda tampilkan, katakanlah kita beri nama tata letak ini
Langkah selanjutnya adalah membuat AlertDialog yang akan menampilkan tata letak ini dengan ProgressBar
sekarang yang tersisa hanyalah menampilkan dan menyembunyikan dialog ini di acara klik kami seperti ini
dan itu saja, itu harus bekerja, seperti yang Anda lihat itu sangat sederhana dan mudah untuk mengimplementasikan ProgressBar, bukan ProgressDialog. sekarang Anda dapat menampilkan / mengabaikan kotak dialog ini di Handler atau ASyncTask, tergantung kebutuhan Anda
sumber
progress_dialog.show();
kebuilder.show();
. Terima kasih.show()
/dismiss()
, tapi saya tidak meletakkanbuilder.show()
karena kemudian untuk mengabaikannya kita harus melakukandialog.dismiss()
yang agak membingungkan bagi seseorang yang suka menjaga kode mereka sederhana dan mudah dimengerti, dan juga karenabuilder.show()
mengembalikanAlertDialog
objek, dan kita harus menyimpan referensi itu sepertiAlertDialog dialog = builder.show();
kemudian lakukandialog.dismiss()
, lebih mudah untukbuilder.create()
kembali pada beberapaAlertDialog
objek, dan kemudian menggunakan objek itu untuk menampilkan dan menyembunyikan dialogYa, ProgressDialog sudah usang tetapi Dialog tidak.
Anda dapat mengembang file XML Anda sendiri (berisi bilah kemajuan dan memuat teks) ke objek dialog Anda dan kemudian menampilkan atau menyembunyikannya menggunakan
show()
dandismiss()
fungsi. Berikut ini sebuah contoh (Kotlin):Kelas ProgressDialog :
XML
Dalam kode Anda : Lakukan saja
var dialog = ProgressDialog.progressDialog(context)
Memperlihatkan:
dialog.show()
Untuk menyembunyikan:
dialog.dismiss()
sumber
Nah, jika Anda benar-benar ingin bertentangan dengan kehendak mereka, Anda masih dapat menggunakan Sweet Alert Dialog atau membuatnya sendiri.
Kode Java:
sumber
HideProgress
tidak melakukan apa-apa.ProgressBar adalah alternatif terbaik untuk ProgressDialog. Elemen antarmuka pengguna yang menunjukkan kemajuan operasi.
Untuk info lebih lanjut, lihat dokumen Google ini : https://developer.android.com/reference/android/widget/ProgressBar.html
sumber
Anda tidak perlu mengimpor perpustakaan khusus apa pun.
Saya lebih suka menggunakan yang modern
AlertDialog
jadi ini adalah versi Kotlin untuk jawaban hebat yang diposting oleh Kishan Donga di halaman ini.Kode Kotlin:
Pemakaian:
Keluaran:
sumber
view!!.context
Seperti yang disebutkan pada halaman dokumentasi , alternatifnya adalah
ProgressBar
.ProgressDialog
Tampilan dapat direplikasi dengan menempatkanProgressBar
ke dalamAlertDialog
.Anda masih dapat menggunakannya, tetapi Android tidak ingin Anda menggunakannya, itu sebabnya itu sudah usang. Jadi Anda harus mempertimbangkan untuk menyelesaikan masalah Anda dengan cara lain, seperti menanamkan
ProgressBar
ke dalam masalah AndaLayout
.sumber
mengacu pada fungsi atau elemen yang sedang dalam proses digantikan oleh yang lebih baru."Deprecated"
Keuntungan
Saya pribadi akan mengatakan bahwa
ProgressBar
memiliki keunggulan atas keduanya.ProgressBar
adalah elemen antarmuka pengguna yang menunjukkan kemajuan operasi. Tampilkan bilah progres kepada pengguna dengan cara yang tidak mengganggu . Tampilkan bilah progres di antarmuka pengguna aplikasi Anda.sumber
Saya menggunakan DelayedProgressDialog dari https://github.com/Q115/DelayedProgressDialog Ia melakukan hal yang sama seperti ProgressDialog dengan manfaat tambahan dari penundaan jika perlu.
Menggunakannya mirip dengan ProgressDialog sebelum Android O:
sumber
Pengaturan Gradle
Tambahkan dependensi berikut ke module / build.gradle:
Bagaimana cara menggunakannya?
Penggunaannya mirip dengan ProgressDialog asli
NB : Anda harus mengesampingkan aktivitas
onBackPressed()
Implementasi Java8:
Implementasi Kotlin:
sumber
Mungkin panduan ini bisa membantu Anda.
Biasanya saya lebih suka membuat AlertDialogs kustom dengan indikator. Ini memecahkan masalah seperti penyesuaian tampilan App.
sumber
Ini dapat membantu orang lain.
Banyak aplikasi populer memiliki pendekatan berbeda untuk menunjukkan progres apa pun seperti permintaan jaringan, pemuatan file, dll. Memuat spinner tidak menunjukkan seberapa banyak konten yang telah dimuat atau yang tersisa untuk dimuat. Ada periode ketidakpastian yang buruk dalam perspektif UI / UX. Banyak aplikasi populer (Facebook, Linkedin dll) telah mengatasi masalah ini dengan menunjukkan tampilan UI tanpa tulang terlebih dahulu. Kemudian konten yang dimuat secara bertahap diisi di layar.
Saya telah menggunakan shimmer untuk aplikasi saya untuk menyelesaikan masalah ini.
Ada artikel bagus tentang ini yang akan bermanfaat bagi orang lain
sumber
Dalam dialog progres, pengguna tidak dapat melakukan pekerjaan apa pun. Semua proses latar belakang dihentikan selama dialog progres. Jadi, disarankan untuk progress-bar pengguna alih-alih dialog progres.
sumber
Anda dapat menggunakan SpotDialog dengan menggunakan library wasabeef Anda dapat menemukan tutorial lengkap dari tautan berikut:
sumber