首頁  >  文章  >  Java  >  如何在 Android 中將小部件換成多行?

如何在 Android 中將小部件換成多行?

DDD
DDD原創
2024-11-11 17:42:03394瀏覽

How Can I Wrap Widgets to Multiple Lines in Android?

Android 的斷行小部件佈局:包裝小部件的自定義佈局

問題:

這個問題解決了對以包裝格式顯示一系列小部件的佈局的需求,類似於文字在螢幕上的呈現方式。可用的水平空間不足以容納單行中的所有小部件,因此佈局應將這些「句子」包裝到下一行。

解決方案:

提供的程式碼示範了建立一個名為「PredicateLayout」的自訂佈局,它滿足此要求:

public class PredicateLayout extends ViewGroup {...}

此版面配置有效地安排子部件以與文字類似的方式顯示,一次顯示一行,並根據需要無縫換行到後續行。

實現亮點:

實作涉及覆蓋使用以下方法來定義版面的行為:

  • onMeasure 計算版面及其子級的尺寸可用的寬度和高度。
  • generateDefaultLayoutParams 為子視窗小工具建立預設版面參數。
  • checkLayoutParams 確保子視窗小部件參數與佈局相容。
  • onLayout 定位子視窗小部件根據測量尺寸和可用的佈局在佈局內space.

結果:

自訂PredicateLay透過使widget 以換行方式排列來解決問題,類似於文字的顯示方式。產生的佈局在視覺上類似於包裝小部件的所需行為:

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

其他資訊:

此解決方案是概念證明,可能會受益於進一步的增強。歡迎回饋和建議。提供了 PredicateLayout 的 XML 佈局和程式碼以方便實現。

以上是如何在 Android 中將小部件換成多行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn