Saya sangat lelah mencari solusi untuk Scrollview vertikal dan horizontal.
Saya membaca bahwa tidak ada tampilan / tata letak dalam kerangka kerja yang menerapkan fitur ini, tetapi saya perlu sesuatu seperti ini:
Saya perlu mendefinisikan tata letak di dalam yang lain, tata letak anak harus menerapkan pengguliran vertikal / horizontal untuk bergerak.
Awalnya menerapkan kode yang memindahkan tata letak pixel demi pixel, tapi saya pikir itu bukan cara yang benar. Saya mencobanya dengan ScrollView dan Horizontal ScrollView tetapi tidak ada yang berfungsi seperti yang saya inginkan, karena hanya menerapkan pengguliran vertikal atau horizontal.
Kanvas bukanlah solusi saya karena saya harus melampirkan pendengar dalam elemen anak seseorang.
Apa yang dapat saya?
sumber
Jawaban:
Menggabungkan beberapa saran di atas, dan bisa mendapatkan solusi yang baik:
ScrollView Kustom:
Kustom HorizontalScrollView:
ScrollableImageActivity:
tata letak:
sumber
LinearLayout
saya kira)Karena ini tampaknya menjadi hasil pencarian pertama di Google untuk "Android vertical + horizontal ScrollView", saya pikir saya harus menambahkan ini di sini. Matt Clark telah membangun tampilan khusus berdasarkan sumber Android, dan tampaknya berfungsi dengan baik: ScrollView Dua Dimensi
Berhati-hatilah karena kelas di halaman tersebut memiliki bug yang menghitung lebar horizonal tampilan. Perbaikan oleh Manuel Hilty ada di komentar:
Sunting: Tautan tidak berfungsi lagi tetapi ini adalah tautan ke versi blogpost yang lama .
sumber
fillViewport
danonMeasure
persis seperti sumber ScrollView (v2.1). Saya juga mengubah dua konstruktor pertama dengan:this( context, null );
danthis(context, attrs, R.attr.scrollViewStyle);
. Dengan itu, saya bisa menggunakan scrollbar menggunakansetVerticalScrollBarEnabled
dansetHorizontalScrollBarEnabled
dalam kode.Saya menemukan solusi yang lebih baik.
XML: (design.xml)
Kode Java:
Itu berhasil !!!
Jika Anda ingin memuat tata letak atau kontrol lain, strukturnya sama.
sumber
Saya menggunakannya dan berfungsi dengan baik:
Tautan sumber ada di sini: Android-spa
sumber
ImageView
sebagai konten yang dapat digulir, itu mungkin atau mungkin tidak berfungsi untuk konten lain yang sewenang-wenang, dan bahwa Google percaya bahwa akan ada masalah dengan pendekatan Anda. Pendapat Google juga penting sehubungan dengan pengembangan di masa depan - mereka mungkin tidak mencoba untuk memastikan bahwa pendekatan Anda berhasil dalam jangka panjang, jika mereka menyarankan orang untuk tidak menggunakannya di tempat pertama.Solusi saya berdasarkan jawaban Mahdi Hijazi , tetapi tanpa tampilan khusus:
Tata letak:
Kode (onCreate / onCreateView):
Anda dapat mengubah urutan tampilan gulir. Ubah saja urutannya dalam tata letak dan kode. Dan jelas bukan WHATViewYouWant Anda ingin meletakkan tata letak / tampilan yang ingin Anda gulir kedua arah.
sumber
Opsi # 1: Anda dapat membuat desain UI baru yang tidak memerlukan pengguliran horizontal dan vertikal secara simultan.
Opsi # 2: Anda dapat memperoleh kode sumber untuk
ScrollView
danHorizontalScrollView
, mempelajari bagaimana tim inti Android menerapkannya, dan membuatBiDirectionalScrollView
implementasi Anda sendiri .Opsi # 3: Anda dapat menyingkirkan dependensi yang mengharuskan Anda untuk menggunakan sistem widget dan menarik langsung ke kanvas.
Opsi # 4: Jika Anda menemukan aplikasi open source yang tampaknya mengimplementasikan apa yang Anda cari, lihat bagaimana mereka melakukannya.
sumber
Coba ini
sumber
karena tautan Dua Dimensi Scrollview sudah mati saya tidak bisa mendapatkannya sehingga saya membuat komponen saya sendiri. Ini menangani melemparkan dan berfungsi dengan baik untuk saya. Satu-satunya batasan adalah wrap_content mungkin tidak berfungsi dengan baik untuk komponen itu.
https://gist.github.com/androidseb/9902093
sumber
Saya punya solusi untuk masalah Anda. Anda dapat memeriksa kode ScrollView yang hanya menangani pengguliran vertikal dan mengabaikan kode horizontal dan mengubahnya. Saya ingin tampilan seperti tampilan web, sehingga diubah ScrollView dan itu bekerja dengan baik untuk saya. Tetapi ini mungkin tidak sesuai dengan kebutuhan Anda.
Beri tahu saya jenis UI apa yang Anda targetkan.
Salam,
Ravi Pandit
sumber
Bermain dengan kode tersebut, Anda dapat menempatkan HorizontalScrollView ke dalam ScrollView. Dengan demikian, Anda dapat memiliki dua metode gulir dalam tampilan yang sama.
Sumber: http://androiddevblog.blogspot.com/2009/12/creating-two-dimensions-scroll-view.html
Saya harap ini bisa membantu Anda.
sumber
gunakan cara ini saya coba ini saya memperbaikinya
Masukkan Semua tata letak XML Anda di dalamnya
Saya menjelaskan ini dalam link ini recyclerView vertikal dan horizontal recyclerview bergulir bersama-sama
sumber