Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Membungkus Widget ke Berbilang Baris dalam Android?

Bagaimanakah Saya Boleh Membungkus Widget ke Berbilang Baris dalam Android?

DDD
DDDasal
2024-11-11 17:42:03478semak imbas

How Can I Wrap Widgets to Multiple Lines in Android?

Reka Letak Widget Pemecah Baris untuk Android: Reka Letak Tersuai untuk Membungkus Widget

Masalah:

Soalan ini menangani keperluan untuk susun atur yang memaparkan jujukan widget dalam format berbalut, serupa dengan bagaimana teks dipersembahkan pada skrin. Ruang mendatar yang tersedia tidak mencukupi untuk memuatkan semua widget dalam satu baris, jadi reka letak hendaklah membalut "ayat" ini ke baris seterusnya.

Penyelesaian:

The kod yang disediakan menunjukkan penciptaan susun atur tersuai yang dipanggil "PredicateLayout" yang memenuhi ini keperluan:

public class PredicateLayout extends ViewGroup {...}

Reka letak ini menyusun widget kanak-kanak dengan cekap dengan cara yang serupa dengan teks, memaparkannya satu baris pada satu masa dan membalut dengan lancar ke baris berikutnya jika perlu.

Pelaksanaan Sorotan:

Pelaksanaan melibatkan mengatasi kaedah berikut untuk menentukan reka letak tingkah laku:

  • onMeasure mengira dimensi reka letak dan anak-anaknya berdasarkan lebar dan ketinggian yang tersedia.
  • generateDefaultLayoutParams menetapkan parameter reka letak lalai untuk widget kanak-kanak.
  • checkLayoutParams memastikan bahawa parameter widget kanak-kanak serasi dengan reka letak.
  • onLayout meletakkan widget kanak-kanak dalam reka letak berdasarkan dimensi diukur dan ruang yang tersedia.

Hasil:

Tersuai PredicateLayout menyelesaikan masalah dengan mendayakan widget disusun dengan cara pemecahan baris, sama seperti cara teks dipaparkan. Reka letak yang terhasil secara visual menyerupai gelagat yang diingini bagi widget yang dibalut:

[Hello] [Hello] [Hello] [Hello] [Hello]
[Hello] [Hello] [Hello] [Hello]

Maklumat Tambahan:

Penyelesaian ini merupakan bukti konsep dan mungkin mendapat manfaat daripada peningkatan selanjutnya. Maklum balas dan cadangan adalah dialu-alukan. Reka letak dan kod XML untuk PredicateLayout disediakan untuk pelaksanaan yang mudah.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membungkus Widget ke Berbilang Baris dalam Android?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn