当前位置:网站首页 > R语言数据分析 > 正文

gridbagconstraints布局(gridlayout布局)



线性布局 ( LiearLayout ) 通过线性容器Row( )和Colnum( )构建

1.1 间距

在布局容器内,可以通过 space 属性设置布局主方向方向上子元素的间距,使各子元素在布局主方向上有等间距效果。

1.2主轴对齐方式

那个轴是主轴, 根据组件判断. Row( )横轴是主轴, Colnum( )纵轴是主轴. 组件的主轴方向可以是任意方向

属性:

参数:枚举

属性描述Start首端对齐Center居中对齐End尾部对齐Spacebetween两端对齐
子元素之间间距相等SpaceAround子元素两侧间距相等
第一个元素到行首的距离和最后一个元素到行尾的距离是相邻元素之间距离的一半SpaceEvenly相邻元素之间的距离、第一个元素与行首的间距、最后一个元素到行尾的间距都完全一样

 

1.3交叉轴对齐方式

属性:

参数: 枚举类型

注意:布局容器在交叉轴要有足够的空间, 否则无法生效.

Row组件 默认在交叉轴子元素居中效果

 

1.4单个子元素交叉轴对齐方式

属性:

参数: 枚举

 

1.5自适应缩放

用法: 设置layoutWeight属性的 子元素 与 兄弟元素, 会 按照权重 进行分 主轴 的空间,

语法: .layoutWeight(数字)

注意: 设置layoutWeight时要记得给父组件设置主轴空间大小, 因为父组件的主轴没有设置空间大小, 添加layoutWeight后会将父组件的主轴撑到最大, 常导致自己的兄弟组件被挤到屏幕外面去

 

Flex只提供弹性布局, 不提供滚动

  • Flex布局 默认水平排列

调整主轴 direction: FlecDirection.xxx

  • 对齐 Row 和 Column: 对齐方式是通过属性的方法 .justifyContent

Flex通过参数进行调整

  • Flex的渲染性能没有Row()和Column高

参数: 记住这是参数

值: 枚举

Flex的参数控制换行, 添加后当控制的子元素主轴尺寸之和大于容器的主轴尺寸时, 子元素进行换行

 
 

列表是一种容器,当列表项超过List容器组件大小时,可以自动提供滚动功能。它适合用于呈现同类数据类型或数据类型集,例如图片和文本。

使用列表可以结构化显示、可滚动的信息。通过调整在 List 组件中属性, 可使子组件按垂直或者水平方向线性排列,默认是垂直方向

垂直滚动列表

水平布局

List 表示列表容器,ListItem表示单个列表项,只能有一个子组件。

 
3.2.1设置主轴方向

List组件主轴默认是垂直方向。

若是水平滚动列表场景,将 List 的 属性设置为 即可实现。 默认为 ,即主轴默认是垂直方向

属性:

参数:枚举

  • :垂直方向,默认值
  • :水平方向
 
3.2.2设置交叉轴布局 - 列模式,列对齐方式
列模式

属性:

参数:

  • 参数1: 交叉轴方向列数
  • 参数2: 交叉轴方向列间距
 
列对齐方式

List交叉轴方向宽度大于ListItem交叉轴宽度 *列数时,ListItem在List交叉轴方向的布局方式,默认为首部对齐。

属性:

参数:枚举

  • Start:首部对齐(默认)
  • Center:居中对齐
  • End:尾部对齐
 
3.3.1滚动条状态

属性:

参数:枚举

  • Off: 不显示
  • On:常驻显示
  • Auto:按需显示(触摸时显示,2s 后消失)
 
3.3.2分割线样式

列表默认没有分割线

属性:divider()

参数:{ strokeWidth: 数字, color?: ‘color’, startMargin?: 数字, endMargin?: 数字 }

 

参数:

属性:divder

 

通过List组件的sticky属性,即可实现粘性标题

| sticky | StickyStyle | 配合ListItemGroup组件使用,设置ListItemGroup中header和footer是否要吸顶或吸底。
默认值:StickyStyle.None
该接口支持在ArkTS卡片中使用。
说明:
sticky属性可以设置为 StickyStyle.Header | StickyStyle.Footer 以同时支持header吸顶和footer吸底。 |
| — | — | — |

 

场景

实现步骤

关键步骤

  1. 创建控制器(ListScroller)对象
  2. 将控制器对象设置给List组件
  3. 调用控制器对象的方法, 实现滚动

参考代码

 

参数

参数名 参数类型 必填 参数描述indexnumber是要滑动到的目标元素所在的ListItemGroup在当前容器中的索引值。smoothboolean否设置滑动到列表项在列表中的索引值时是否有动效,true表示有动效,false表示没有动效。
默认值:false。alignScrollAlign否指定滑动到的元素与当前容器的对齐方式。
默认值:ScrollAlign.START。

事件-onScrollIndex

功能描述:

有子组件划入或画出List显示区域时触发, 可以获取子组件的下标

编程中的事件是指在程序运行过程中,‌某个特定的操作或状态发生时所触发的一段代码或函数。‌

名称功能描述onScrollIndex(event: (start: number, end: number, center10+: number) => void) 有子组件划入或划出List显示区域时触发。从API version 10开始,List显示区域中间位置子组件变化时也会触发。
计算索引值时,ListItemGroup作为一个整体占一个索引值,不计算ListItemGroup内部ListItem的索引值。
- start: List显示区域内第一个子组件的索引值。
- end: List显示区域内最后一个子组件的索引值。
- center: List显示区域内中间位置子组件的索引值。

核心代码:

 

如果布局是由 多行 和 多列 所组成、行列可能需要合并、滚动,适合采用网格布局来实现。

每一个Griditem中只能有一个子组件

例如:

 

说明

:::info

  1. Grid的子组件必须是GridItem组件,需要展示的内容设置在 GridItem 内部既可
  2. GridItem 只能有一个子组件
  3. 宽高分为 2 种情况:
    1. Grid组件设置了宽高属性,则其尺寸为设置值。
    2. Grid组件没有设置宽高属性,Grid组件的尺寸默认适应其父组件的尺寸。

:::

常用属性

属性值描述columnsTemplatestring设置当前网格布局列的数量或最小列宽值
例如:‘1fr 1fr 2fr’rowsTemplatestring设置当前网格布局行的数量或最小行高值
例如:‘1fr 1fr 2fr’columnsGap长度列间距rowsGap长度行间距
 

如果要实现这个效果 通过 GridItem 的如下属性即可:

属性描述rowStart指定当前元素起始行号rowEnd指定当前元素终点行号columnStart指定当前元素起始列号columnEnd指定当前元素终点列号
 
 

使用属性控制滚动

  1. 水平滚动:设置的是rowsTemplate,Grid的滚动方向为水平方向。
  2. 垂直滚动:设置的是columnsTemplate,Grid的滚动方向为垂直方向
 

使用代码控制滚动

核心步骤:

  1. 创建 Scroller 对象
  2. 设置给 Grid
  3. 调用 Scroller 对象的 scrollPage 方法
 

定义有两种方法:

  1. 使用提供的属性调整(可调整属性有限)
  2. 使用 ScrollBar 组件自定义(可定制性高)

使用属性调整

属性名 类型 说明scrollBarBarState设置滚动条状态。
默认值:BarState.auto
BarState.off 关闭
BarState.on 常驻
BarState.auto 按需显示scrollBarColorstringnumberscrollBarWidthstringnumber

使用ScrollBar组件自定义

核心步骤:

  1. 和 Grid 共用同一个 Scroller
  2. 创建 ScrollBar 组件并设置属性
参数名 参数类型 必填 参数描述scrollerScroller是可滚动组件的控制器。用于与可滚动组件进行绑定。directionScrollBarDirection否滚动条的方向,控制可滚动组件对应方向的滚动。
默认值:ScrollBarDirection.VerticalstateBarState否滚动条状态。
默认值:BarState.Auto
 
到此这篇gridbagconstraints布局(gridlayout布局)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!
                            

版权声明


相关文章:

  • 连接redis命令 info memory(redis desktop manager连接redis)2024-12-29 15:36:06
  • rise和raise的区别和用法(rise跟raise的区别在哪里?并举例说明)2024-12-29 15:36:06
  • resnet作者(ResNET作者)2024-12-29 15:36:06
  • 电脑剪辑视频的软件Pr(电脑剪辑视频的软件有哪些)2024-12-29 15:36:06
  • hrnetone(hrnetone和乐网简介)2024-12-29 15:36:06
  • argparser怎么下载(怎么下载ar软件)2024-12-29 15:36:06
  • tl592芯片(tlc5955dcar芯片资料)2024-12-29 15:36:06
  • aifree是什么耳机(aifree耳机是什么牌子)2024-12-29 15:36:06
  • uchar是什么意思(uchar code什么意思)2024-12-29 15:36:06
  • jcenter官网(j-scent官网)2024-12-29 15:36:06
  • 全屏图片