赞
踩
HarmonyOS应用开发学习笔记 UI布局学习 相对布局 (RelativeContainer)
Row() { GridRow({ columns: 4 }) { ForEach(this.bgColors, (item, index) => { GridCol() { Row() { Text(`${index + 1}`) }.width('100%').height('50') }.backgroundColor(item) }) } .width('100%').height('100%') .onBreakpointChange((breakpoint) => { this.currentBp = breakpoint }) } .height(160) .border({ color: Color.Blue, width: 2 }) .width('90%') Row() { GridRow({ columns: 8 }) { ForEach(this.bgColors, (item, index) => { GridCol() { Row() { Text(`${index + 1}`) }.width('100%').height('50') }.backgroundColor(item) }) } .width('100%').height('100%') .onBreakpointChange((breakpoint) => { this.currentBp = breakpoint }) } .height(160) .border({ color: Color.Blue, width: 2 }) .width('90%')
代码 | 描述 |
---|---|
GridRowDirection.Row | 从左往右排列 |
GridRowDirection.RowReverse | 从右往左排列 |
//子组件默认从左往右排列
GridRow({ direction: GridRowDirection.Row }){}
GridRow({ direction: GridRowDirection.RowReverse }){}
当gutter类型为number时,同时设置栅格子组件间水平和垂直方向边距且相等。下例中,设置子组件水平与垂直方向距离相邻元素的间距为10。
GridRow({ gutter: 10 }){}
GridRow({ gutter: { x: 20, y: 50 } }){}
代码 | 描述 |
---|---|
span | 占用列数 |
offset | 偏移列数 |
order | 元素序号 |
设置span
GridCol({ span: 2 }){}
GridCol({ span: { xs: 1, sm: 2, md: 3, lg: 4 } }){}
GridCol(){}.span(2)
GridCol(){}.span({ xs: 1, sm: 2, md: 3, lg: 4 })
设置offset
GridCol({ offset: 2 }){}
GridCol({ offset: { xs: 2, sm: 2, md: 2, lg: 2 } }){}
GridCol(){}.offset(2)
GridCol(){}.offset({ xs: 1, sm: 2, md: 3, lg: 4 })
设置order
GridCol({ order: 2 }){}
GridCol({ order: { xs: 1, sm: 2, md: 3, lg: 4 } }){}
GridCol(){}.order(2)
GridCol(){}.order({ xs: 1, sm: 2, md: 3, lg: 4 })
GridRow为栅格容器组件,需与栅格子组件GridCol在栅格布局场景中联合使用。
栅格系统默认断点将设备宽度分为xs、sm、md、lg四类,尺寸范围如下:
断点名称 | 取值范围(vp) | 设备描述 |
---|---|---|
xs | [0, 320) | 最小宽度类型设备。 |
sm | [320, 520) | 小宽度类型设备。 |
md | [520, 840) | 中等宽度类型设备。 |
lg | [840, +∞) | 大宽度类型设备。 |
@State bgColors: Color[] = [Color.Red, Color.Orange, Color.Yellow, Color.Green, Color.Pink, Color.Grey, Color.Blue, Color.Brown]; ... GridRow({ breakpoints: { value: ['200vp', '300vp', '400vp', '500vp', '600vp'], reference: BreakpointsReference.WindowSize } }) { ForEach(this.bgColors, (color, index) => { GridCol({ span: { xs: 2, // 在最小宽度类型设备上,栅格子组件占据的栅格容器2列。 sm: 3, // 在小宽度类型设备上,栅格子组件占据的栅格容器3列。 md: 4, // 在中等宽度类型设备上,栅格子组件占据的栅格容器4列。 lg: 6, // 在大宽度类型设备上,栅格子组件占据的栅格容器6列。 xl: 8, // 在特大宽度类型设备上,栅格子组件占据的栅格容器8列。 xxl: 12 // 在超大宽度类型设备上,栅格子组件占据的栅格容器12列。 } }) { Row() { Text(`${index}`) }.width("100%").height('50vp') }.backgroundColor(color) }) }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。