如何使用GriRow和GriCol开发自适应布局

2023年 11月 16日 53.4k 0

想了解更多关于开源的内容,请访问:

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

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论