Saat ini saya menggunakan listview dalam aplikasi saya yang mungkin perlu satu detik untuk ditampilkan.
Apa yang saya lakukan saat ini adalah menggunakan properti @ id / android: kosong dari tampilan daftar untuk membuat teks "memuat".
<TextView android:id="@id/android:empty"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FF0000"
android:text="Loading..."/>
Sekarang, saya ingin menggantinya dengan lingkaran animasi yang digunakan dalam dialog pemuatan alih-alih teks ini, saya kira Anda semua tahu apa yang saya maksud:
Sunting: Saya tidak ingin dialog. Saya ingin menunjukkan itu di dalam tata letak saya.
Terima kasih banyak atas bantuan Anda!
android
loading
android-asynctask
geometry
Waza_Be
sumber
sumber
Anda dapat melakukan ini dengan menggunakan xml berikut
Dengan gaya ini
Untuk menggunakan ini, Anda harus menyembunyikan elemen UI Anda dengan menetapkan nilai visibilitas ke GONE dan kapan pun data dimuat, panggil
setVisibility(View.VISIBLE)
semua tampilan Anda untuk memulihkannya. Jangan lupa meneleponfindViewById(R.id.loadingPanel).setVisiblity(View.GONE)
untuk menyembunyikan animasi pemuatan.Jika Anda tidak memiliki acara / fungsi pemuatan tetapi hanya ingin panel memuat menghilang setelah x detik gunakan Handle untuk memicu persembunyian / tampilan.
sumber
findViewById(...).setVisibility(View.GONE)
telepon ketika saya memutar layar. Berfungsi seperti pesona dalam satu orientasi, tetapi apakah Anda tahu mengapa ini mungkin melanggar?findViewById(R.id.loadingPanel).setVisiblity(View.GONE)
di aktivitas kedua? Tidak dapat menemukanview
karena tidak adasetContnetView()
metode dalam aktivitas fragmen ke-2. Terima kasih!Ini umumnya disebut sebagai Progress Bar tak tentu atau Dialog Kemajuan tak tentu.
Gabungkan ini dengan Thread dan Handler untuk mendapatkan apa yang Anda inginkan. Ada sejumlah contoh tentang cara melakukan ini melalui Google atau di sini di SO. Saya akan sangat menyarankan meluangkan waktu untuk belajar bagaimana menggunakan kombinasi kelas ini untuk melakukan tugas seperti ini. Ini sangat berguna di berbagai jenis aplikasi dan akan memberi Anda wawasan tentang bagaimana Thread dan Penangan dapat bekerja bersama.
Saya akan membantu Anda memulai cara kerjanya:
Acara pemuatan memulai dialog:
Sekarang utasnya berfungsi:
Akhirnya kembalikan status dari utas setelah selesai:
sumber
Jika Anda tidak ingin mengembang tampilan lain hanya untuk menunjukkan kemajuan maka lakukan hal berikut:
Android akan menjaga visibilitas bilah kemajuan.
Misalnya, di
activity_main.xml
:Dan di
MainActivity.java
:}
sumber
Anda dapat menggunakan kode ini dari sampel firebase github ..
Anda tidak perlu mengedit dalam file tata letak ... cukup buat kelas baru "BaseActivity"
Dalam Aktivitas Anda bahwa Anda ingin menggunakan dialog kemajuan ..
Sebelum / Setelah fungsi yang membutuhkan waktu
sumber
Untuk yang berkembang di Kotlin, ada metode manis yang disediakan oleh perpustakaan Anko yang membuat proses menampilkan
ProgressDialog
menjadi mudah!Berdasarkan tautan itu:
Ini akan menampilkan Dialog Kemajuan dengan% kemajuan ditampilkan (yang Anda harus melewati
init
parameter juga untuk menghitung kemajuan).Ada juga
indeterminateProgressDialog()
metode, yang menyediakan animasi Spinning Circle tanpa batas waktu sampai diberhentikan:Berteriaklah ke blog ini yang mengarahkan saya ke solusi ini.
sumber