想了解更多关于开源的内容,请访问:
51CTO 开源基础软件社区
https://ost.51cto.com
场景说明
开发者经常需要将一个应用适配到不同的设备上运行,比如手机、平板、折叠屏等等。为了保证用户的浏览体验,就需要根据不同设备的屏幕尺寸设计相应的UI布局变化。常见的如阅读软件,在手机上显示一页内容,在折叠屏上就可以显示两页内容,这样才能给用户更好的阅读体验。针对上述场景,OpenHarmony为开发者提供了较为灵活的自适应布局能力,本文即为大家做一个简单的介绍。
两个重要的自适应布局组件
使用OpenHarmony进行自适应布局的开发离不开以下两个组件:GridRow、GridCol。
- GridRow用来将屏幕等分为特定列数,并设置区分屏幕大小的临界点(breakpoints),比如可以将屏幕列数根据屏幕大小划分为:小屏设备4列,中屏8列,大屏12列(假设屏幕宽度 {
Stack({ alignContent: Alignment.TopStart }) {
Image(item.img)
.width('100%')
.height('100%')
.borderRadius(16)
.objectFit(ImageFit.Cover)Column() {
Text(item.title)
.fontSize(16)
.fontColor(Color.White)
.margin({ bottom: 4 })
Text(item.info)
.fontSize(12)
.fontColor(Color.White)
.opacity(0.6)
}
.alignItems(HorizontalAlign.Start)
.margin({ top: 20, left: 14 })
}
}, item => JSON.stringify(item))
}
.height(144)
.itemSpace(12)
.autoPlay(true)
// 小屏时显示一个页面,中屏时显示两个页面
.displayCount(this.currentbp == 'md' ? 2 : 1)
}
.height(144)}
.height('100%')
.width('100%')
.padding({top:10,bottom:10,left:10,right:10})
// 获取断点
.onBreakpointChange((breakpoint)=>{
this.currentbp = breakpoint
})
}
}参考
- GridRow组件的使用
- GridCol组件的使用
想了解更多关于开源的内容,请访问:
51CTO 开源基础软件社区
https://ost.51cto.com