Dalam aplikasi Android seperti Twitter (aplikasi resmi), ketika Anda menjumpai ListView, Anda dapat menariknya ke bawah (dan itu akan bangkit kembali ketika dirilis) untuk menyegarkan konten.
Saya ingin tahu apa cara terbaik, menurut Anda, untuk mengimplementasikannya?
Beberapa kemungkinan yang dapat saya pikirkan:
- Item di atas ListView - namun saya tidak berpikir bergulir kembali ke posisi item 1 (berbasis 0) dengan animasi pada ListView adalah tugas yang mudah.
- Pandangan lain di luar ListView - tetapi saya harus berhati-hati dalam memindahkan posisi ListView ke bawah ketika ditarik, dan saya tidak yakin apakah kita dapat mendeteksi apakah drag-touch ke ListView masih benar-benar menggulir item pada ListView.
Ada rekomendasi?
PS Saya ingin tahu kapan kode sumber aplikasi Twitter resmi dirilis. Telah disebutkan bahwa itu akan dirilis, tetapi 6 bulan telah berlalu dan kami belum mendengarnya sejak itu.
android
listview
android-listview
pull-to-refresh
Randy Sugianto 'Yuku'
sumber
sumber
Jawaban:
Akhirnya, Google merilis versi resmi perpustakaan tarik-untuk-menyegarkan!
Itu disebut
SwipeRefreshLayout
, di dalam perpustakaan dukungan, dan dokumentasinya ada di sini :Tambahkan
SwipeRefreshLayout
sebagai tampilan induk yang akan diperlakukan sebagai tarikan untuk menyegarkan tata letak. (Saya mengambilListView
sebagai contoh, dapat sajaView
sepertiLinearLayout
,ScrollView
dll)Tambahkan pendengar ke kelas Anda
Anda juga dapat menelepon
pullToRefresh.setRefreshing(true/false);
sesuai kebutuhan Anda.MEMPERBARUI
Perpustakaan dukungan Android telah usang dan telah digantikan oleh AndroidX. Tautan ke perpustakaan baru dapat ditemukan di sini .
Anda juga perlu menambahkan ketergantungan berikut ke proyek Anda:
ATAU
Anda dapat pergi ke Refactor >> Migrasikan ke AndroidX dan Android Studio akan menangani dependensi untuk Anda.
sumber
Saya telah berupaya menerapkan komponen tarik untuk menyegarkan, masih jauh dari selesai tetapi menunjukkan kemungkinan penerapan, https://github.com/johannilsson/android-pulltorefresh .
Logika utama diimplementasikan dalam
PullToRefreshListView
perluasan ituListView
.Secara internal ia mengontrol gulir tampilan tajuk menggunakanWidget sekarang diperbarui dengan dukungan untuk 1.5 dan kemudian, harap baca README untuk dukungan 1.5.smoothScrollBy
(API Level 8).Di layout Anda, Anda cukup menambahkannya seperti ini.
sumber
Saya juga menerapkan pustaka PullToRefresh yang kuat, open source, mudah digunakan dan sangat dapat disesuaikan untuk Android. Anda dapat mengganti ListView Anda dengan PullToRefreshListView seperti yang dijelaskan dalam dokumentasi pada halaman proyek.
https://github.com/erikwt/PullToRefresh-ListView
sumber
Cara termudah yang menurut saya disediakan oleh pustaka dukungan android:
android.support.v4.widget.SwipeRefreshLayout;
setelah itu diimpor maka Anda dapat menetapkan tata letak sebagai berikut:
Saya berasumsi bahwa Anda menggunakan tampilan pendaur ulang daripada tampilan daftar. Namun, listview masih berfungsi sehingga Anda hanya perlu mengganti recyclerview dengan listview dan memperbarui referensi dalam kode java (Fragment).
Di fragmen aktivitas Anda, Anda pertama-tama mengimplementasikan antarmuka,:
SwipeRefreshLayout.OnRefreshListener
i, eSemoga ini bisa membantu massa
sumber
setRefreshing
: "Jangan panggil ini saat penyegaran dipicu oleh gerakan gesek" seperti yang dijelaskan dalam developer.android.com/reference/android/support/v4/widget/…Di tautan ini, Anda dapat menemukan percabangan dari tampilan terkenal
PullToRefresh
yang memiliki implementasi baru yang menarik sepertiPullTorRefreshWebView
atauPullToRefreshGridView
atau kemungkinan untuk menambahkanPullToRefresh
di tepi bawah daftar.https://github.com/chrisbanes/Android-PullToRefresh
Dan yang terbaik adalah itu berfungsi sempurna di Android 4.1 (yang normal
PullToRefresh
tidak berfungsi)sumber
Saya memiliki cara yang sangat mudah untuk melakukan ini tetapi sekarang yakin dengan cara yang sangat mudah. Ada kode saya PullDownListView.java
Anda hanya perlu menerapkan ListViewTouchEventListener pada aktivitas Anda di mana Anda ingin menggunakan ListView ini dan mengatur pendengar
Saya sudah menerapkannya di PullDownListViewActivity
Ini bekerja untuk saya :)
sumber
Untuk menerapkan Android Pull-to-Refresh, coba bagian kode ini,
Kelas aktivitas:
sumber
Tidak ada yang menyebutkan jenis baru "Tarik untuk menyegarkan" yang ditampilkan di atas bilah tindakan seperti di Google Now atau aplikasi Gmail.
Ada perpustakaan ActionBar-PullToRefresh yang berfungsi persis sama.
sumber
Perhatikan ada masalah UX yang harus dihadapi ketika menerapkan pada Android dan WP.
"Indikator hebat mengapa desainer / pengembang tidak boleh menerapkan tarikan untuk menyegarkan dalam gaya yang dilakukan aplikasi iOS adalah bagaimana Google dan tim mereka tidak pernah menggunakan tarikan untuk menyegarkan di Android sementara mereka menggunakannya di iOS."
https://plus.google.com/109453683460749241197/posts/eqYxXR8L4eb
sumber
Jika Anda tidak ingin program Anda terlihat seperti program iPhone yang dipasangkan secara paksa ke Android, bertujuan untuk tampilan dan rasa yang lebih asli dan lakukan sesuatu yang mirip dengan Gingerbread:
sumber
Saya telah menulis tarikan untuk menyegarkan komponen di sini: https://github.com/guillep/PullToRefresh Ini berfungsi jika daftar tidak memiliki item, dan saya sudah mengujinya pada> = 1,6 ponsel android.
Setiap saran atau peningkatan dihargai :)
sumber
Saya pikir perpustakaan terbaik adalah: https://github.com/chrisbanes/Android-PullToRefresh .
Bekerja dengan:
sumber
Untuk mendapatkan Lollipop Pull-To Refresh terbaru:
android.support.v4.widget.SwipeRefreshLayout
plusandroid.support.v4.widget.SwipeRefreshLayout.OnRefreshListener
Panduan lengkap dapat ditemukan di sini: http://antonioleiva.com/swiperefreshlayout/
Plus untuk ListView saya sarankan untuk membaca tentang
canChildScrollUp()
di komentar;)sumber
Pull-to-Refresh yang sangat menarik oleh Yalantis . Gif untuk iOS, tetapi Anda dapat memeriksanya :)
sumber
Pertama-tama kita harus tahu apa itu Tarik untuk menyegarkan tata letak di android. kita dapat memanggil tarikan untuk menyegarkan di Android sebagai gesek ke penyegaran. ketika Anda menggeser layar dari atas ke bawah, ia akan melakukan beberapa tindakan berdasarkan setOnRefreshListener.
Berikut tutorial yang menunjukkan tentang cara menerapkan tarik android untuk menyegarkan. Saya harap ini membantu.
sumber