- Hello HarmonyOS!:鴻蒙應用開發從入門到精通
- 孫洋
- 392字
- 2022-05-06 15:42:17
2.2.6 AdaptiveBoxLayout
AdaptiveBoxLayout 是自適應盒子布局,可以根據所盛放的組件大小進行自適應,使用起來非常靈活,在一定程度上可以用于解決不同尺寸、不同分辨率設備上的頁面適配問題。不同的設備由于尺寸、分辨率不同,如果使用同一套布局往往會產生意想不到的效果。

圖2-29 PositionLayout的示例
下面實現一個 AdaptiveBoxLayout,分別在電視和手機上進行顯示。
<?xml version="1.0" encoding="utf-8"?>


在電視和手機上的預覽效果如圖2-30所示。

圖2-30 自適應盒子布局在不同設備上的顯示效果
從圖2-30中可以看到,對于不同尺寸的屏幕,AdaptiveBoxLayout在水平方向上的顯示變得不同,在水平方向屏幕比較寬的電視上,自適應盒子布局變成了兩列,而在水平方向屏幕比較窄的手機上,則顯示為1列。
在不同尺寸的屏幕上,水平方向有多少個盒子是由 AdaptiveBoxLayout 自動計算得到的。在布局中,每個盒子的寬度固定由布局總寬度除以列數得到。因為盒子的寬度是自動計算得到的,所以組件的寬度不支持match_content,但支持match_parent,即計算出來的盒子的寬度。計算規則可以自己來設定。
實現自適應盒子布局的Java代碼如下。

推薦閱讀
- UG NX10.0從新手到高手
- Adobe創意大學After Effects CS5 影視特效師標準實訓教材
- 中文版Premiere Pro CC實用教程
- Liferay User Interface Development
- Moodle JavaScript Cookbook
- 3ds Max 2015中文版從入門到精通
- 三維建模與3D打印從入門到精通
- 中文版Photoshop CS6經典自學教程
- NetSuite OneWorld Implementation 2011 R2
- 用Studio One輕松制作你的短視頻音樂
- Cassandra High Performance Cookbook
- Photoshop+Firefly從入門到精通
- NHibernate 3 Beginner's Guide
- AI繪畫精講:Stable Diffusion從入門到精通
- VRP12虛擬現實編輯器標準教程