Saya ingin mengaktifkan ScrollView dan menonaktifkannya dengan Tombol Klik.
Disable artinya jika ScrollView tidak ada di sana .. dan mengaktifkannya mengembalikan ScrollView.
Saya menginginkannya karena saya memiliki galeri dengan gambar teks, dan pada satu tombol klik orientasi layar berubah, jadi dalam Lansekap teks menjadi lebih besar. Dan saya ingin ScrollView agar gambar tidak meregang sendiri dan teks menjadi tidak dapat dibaca.
scrollview.Enabled=false / setVisibility(false)
tidak membuat apapun.
xml:
<ScrollView
android:id="@+id/QuranGalleryScrollView"
android:layout_height="fill_parent"
android:layout_width="fill_parent">
<Gallery android:id="@+id/Gallery"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scrollbars="horizontal"></Gallery>
</ScrollView>
Terima kasih
Edit1: Saya tidak dapat menggunakan Visibilitas (hilang) karena itu juga akan menyembunyikan Galeri, yang saya inginkan adalah menyembunyikan efek ScrollView. Ketika ada ScrollView, gambar di Galeri menjadi scrollabale dan tidak muat di layar sehingga Anda harus menggulir untuk melihat seluruh gambar, saya tidak ingin menonaktifkan / mengaktifkannya dengan satu klik tombol.
Saya mencoba ini:
((ScrollView)findViewById(R.id.QuranGalleryScrollView)).setOnTouchListener(null);
((ScrollView)findViewById(R.id.QuranGalleryScrollView)).setHorizontalScrollBarEnabled(false);
((ScrollView)findViewById(R.id.QuranGalleryScrollView)).setVerticalScrollBarEnabled(false);
((ScrollView)findViewById(R.id.QuranGalleryScrollView)).setEnabled(false);
Tapi tetap saja gambar di Galeri dapat digulir dan tidak sesuai dengan layar .. apa solusinya?
onTouchEvent(MotionEvent ev)
Saya telah pergi dengan cara ini:
sumber
ListView
bekerja sebaliknya: true saat scrolling dinonaktifkan dan false saat diaktifkan.Menemukan solusi sederhana ini baru saja ditetapkan
sumber
requestDisallowInterceptTouchEvent
hanya berfungsi untuk anak dari View yang akan dikunci. Jadi akan lebih sepertimLinearLayout.requestDisallowInterceptTouchEvent(true);
Nonaktifkan ScrollView
sumber
untuk memulai, saya menggunakan Kode yang diposting di Komentar pertama tetapi saya mengubahnya seperti ini:
lalu saya memanggilnya dengan cara ini
karena saya sudah mencoba
tetapi dikatakan bahwa setIsScrollable tidak ditentukan
Saya harap ini akan membantu Anda
sumber
ScrollView
adalah container tata letak utama kelas tata letak Anda.Ini solusi yang lebih sederhana. Timpa
onTouch()
untukScrollView
OnTouchListener
dan kembalikan salah jika Anda ingin mengabaikan gulir dengan sentuhan. Pengguliran terprogram masih berfungsi dan tidak perlu memperluasScrollView
kelas.sumber
Saya tidak memiliki cukup poin untuk mengomentari sebuah jawaban, tetapi saya ingin mengatakan bahwa jawaban mikec berfungsi untuk saya kecuali saya harus mengubahnya untuk kembali! IsScrollable seperti:
sumber
sumber
@JosephEarl +1 Dia memiliki solusi hebat di sini yang berfungsi sempurna untuk saya dengan beberapa modifikasi kecil untuk melakukannya secara terprogram.
Berikut adalah perubahan kecil yang saya buat:
Kelas LockableScrollView:
Aktifitas utama:
sumber
Saya memiliki tata letak di atas NestedScrollView yang memakan peristiwa sentuh dan menonaktifkan scroll:
dan untuk mengaktifkan:
sumber
Anda bisa membuat CustomScrollView, yang dapat menonaktifkan interferensi dengan tampilan lain. Padahal ini terkadang bisa menjengkelkan bagi pengguna akhir. Gunakan dengan hati-hati.
Ini kodenya:
Bagaimana cara menggunakan CustomScrollView?
Anda dapat menambahkan CustomScrollView sebagai induk ke layar tempat Anda ingin menambahkan Scrollview lain sebagai tampilan anak, dan seluruh layar dapat digulir. Saya menggunakan ini untuk RelativeLayout.
Ini berhasil untuk kasus saya.
sumber
sumber
Apakah ini membantu?
sumber
Anda dapat memperluas galeri dan menggunakan beberapa bendera untuk menonaktifkan pengguliran saat Anda ingin:
sumber
Seperti yang Anda lihat di dokumentasi , Anda tidak dapat mengatur visibilitas ke false. Dalam kasus Anda, Anda mungkin harus menggunakan:
sumber
pada pendengar klik tombol lakukan saja
sehingga bilah gulir tidak diaktifkan pada klik tombol
sumber