Bagaimana saya bisa menggulir ke posisi tertentu dalam program ListView
?
Sebagai contoh, saya punya String[] {A,B,C,D....}
, dan saya perlu mengatur item yang terlihat paling atas ListView
ke indeks 21 saya String[]
.
android
android-listview
Maxime
sumber
sumber
Jawaban:
Untuk gulir langsung:
Untuk gulir yang lancar:
sumber
smoothScrollToPosition
tidak berfungsi, ada saran?listView.post(() -> listView.smoothScrollToPosition());
Untuk SmoothScroll dengan durasi Gulir:
getListView().smoothScrollToPositionFromTop(position,offset,duration);
Catatan: Dari API 11.
Jawaban HandlerExploit adalah apa yang saya cari, tetapi listview saya cukup panjang dan juga dengan scroller alfabet. Kemudian saya menemukan bahwa fungsi yang sama dapat mengambil parameter lain juga :)
Edit: (Dari saran AFD)
Untuk memposisikan pilihan saat ini:
sumber
Masukkan kode Anda di handler sebagai berikut,
dan kemudian memanggil metode ini seperti,
BERSULANG!!!
sumber
Saya telah menetapkan OnGroupExpandListener dan menimpa onGroupExpand () sebagai:
dan gunakan metode setSelectionFromTop () yang Menetapkan item yang dipilih dan menempatkan pemilihan piksel y dari tepi atas ListView. (Jika dalam mode sentuh, item tidak akan dipilih tetapi masih akan diposisikan dengan tepat.) (Dokumen android)
sumber
The
Listview
gulir akan diposisikan ke atas secara default, tetapi ingin gulir jika tidak terlihat maka menggunakan ini:sumber
Jika seseorang mencari fungsi serupa seperti aplikasi Gmail,
Gulir Listview akan diposisikan ke atas secara default. Terima kasih atas petunjuknya. amalBit. Kurangi saja. Itu dia.
sumber
Jika seseorang tertarik menangani listView satu baris naik / turun menggunakan tombol. kemudian.
sumber
Jika Anda ingin melompat langsung ke posisi yang diinginkan dalam listView gunakan saja
listView.setSelection (posisi int);
dan jika Anda ingin melompat dengan lancar ke posisi yang diinginkan di listView gunakan saja
listView.smoothScrollToPosition (posisi int);
sumber
Inilah yang bekerja untuk saya. Kombinasi jawaban oleh amalBit & Melbourne Lopes
dan kemudian panggil metode ini seperti:
sumber
pemilihan list-view.set yang mudah (Anda pos); atau Anda dapat menyimpan posisi Anda dengan prefrence bersama dan ketika Anda memulai aktivitas itu mendapatkan preferensi dan setelion untuk int itu
sumber
-Jika Anda hanya ingin daftar bergulir \ fajar ke posisi tertentu:
-jika Anda ingin mendapatkan posisi item tertentu di myListView:
-juga ini
myListView.getVerticalScrollbarPosition(i);
bisa membantu kamu.Semoga berhasil :)
sumber
Anda memerlukan dua hal untuk menentukan posisi gulir listView secara tepat:
Untuk mendapatkan daftar saat ini, Lihat posisi Gulir:
Untuk mengatur listView posisi Gulir:
sumber
Saya menemukan solusi ini untuk memungkinkan gulir ke atas dan ke bawah menggunakan dua tombol yang berbeda.
Seperti yang disarankan oleh @Nepster saya mengimplementasikan gulir secara terprogram menggunakan getFirstVisiblePosition () dan getLastVisiblePosition () untuk mendapatkan posisi saat ini.
sumber