当前位置: 首页 > news >正文

做卡贴质量好的网站品牌设计

做卡贴质量好的网站,品牌设计,莱芜新闻联播,个人域名onMeasureSize和PlaceChildren onMeasureSize和PlaceChildren 说明官方使用示例参考资料 onMeasureSize和PlaceChildren 说明 在Android开发中View的测量onMeasure和布局onLayout是自定义组件必备的两个方法,HarmonyOS对自定义布局也提供了两个方法: on…

onMeasureSize和PlaceChildren

  • onMeasureSize和PlaceChildren 说明
  • 官方使用示例
  • 参考资料

onMeasureSize和PlaceChildren 说明

在Android开发中View的测量onMeasure和布局onLayout是自定义组件必备的两个方法,HarmonyOS对自定义布局也提供了两个方法:
onMeasureSize:组件每次布局时触发,计算子组件的尺寸,其执行时间先于onPlaceChildren。注意 不允许在onMeasureSize函数中改变状态变量。
在这里插入图片描述

onPlaceChildren:组件每次布局时触发,设置子组件的起始位置。
在这里插入图片描述
两个方法的参数详细含义参考自定义组件的自定义布局

官方使用示例

以下示例中,Index页面包含一个实现了自定义布局的自定义组件,且对应自定义组件的子组件通过index页面内的builder方式传入。

而在自定义组件中,调用了onMeasureSizeonPlaceChildren设置子组件大小和放置位置。例如,在本示例中,在onMeasureSize中初始化组件大小size=100,后续的每一个子组件size会加上上一个子组件大小的一半,实现组件大小递增的效果。而在onPlaceChildren中,定义startPos=300,设置每一个子组件的位置为startPos减去子组件自身的高度,所有子组件右下角一致在顶点位置(300,300),实现一个从右下角开始展示组件的类Stack组件

// xxx.ets
@Entry
@Component
struct Index {build() {Column() {CustomLayout({ builder: ColumnChildren })}}
}// 通过builder的方式传递多个组件,作为自定义组件的一级子组件(即不包含容器组件,如Column)
@Builder
function ColumnChildren() {ForEach([1, 2, 3], (index: number) => { // 暂不支持lazyForEach的写法Text('S' + index).fontSize(30).width(100).height(100).borderWidth(2).offset({ x: 10, y: 20 })})
}@Component
struct CustomLayout {@BuilderdoNothingBuilder() {};@BuilderParam builder: () => void = this.doNothingBuilder;@State startSize: number = 100;result: SizeResult = {width: 0,height: 0};// 第一步:计算各子组件的大小onMeasureSize(selfLayoutInfo: GeometryInfo, children: Array<Measurable>, constraint: ConstraintSizeOptions) {let size = 100;children.forEach((child) => {let result: MeasureResult = child.measure({ minHeight: size, minWidth: size, maxWidth: size, maxHeight: size })size += result.width / 2;})this.result.width = 100;this.result.height = 400;return this.result;}// 第二步:放置各子组件的位置onPlaceChildren(selfLayoutInfo: GeometryInfo, children: Array<Layoutable>, constraint: ConstraintSizeOptions) {let startPos = 300;children.forEach((child) => {let pos = startPos - child.measureResult.height;child.layout({ x: pos, y: pos })})}build() {this.builder();}
}

运行效果
在这里插入图片描述

参考资料

ConstraintSizeOptions
Measurable10+
自定义组件的自定义布局
自定义组件的自定义布局2

http://www.dinnco.com/news/60547.html

相关文章:

  • 网站排名下降的原因国外网站排名前十
  • 龙岩做网站阜阳seo
  • 网站开发需求分析模板seo快速排名软件案例
  • 寻花问柳专做男人的网站重庆seo技术教程博客
  • 个人简历模板下载word格式信阳seo公司
  • linode 搭建wordpressseo168小视频
  • 网站建设项目收获百度一下生活更好
  • 上海优质建筑设计网上海网站优化
  • 做多语言网站教程seo技术软件
  • 有什么做礼品的卖家网站简单的网页设计源代码
  • 青岛cms建站系统软文广告发布平台
  • 望都网站建设搜索引擎营销推广
  • 男孩做网站市场营销互联网营销
  • 网站鼠标移上去显示层百度问答下载安装
  • 大型网站建设济南兴田德润o团队怎么样守游网络推广平台
  • 自助建站软件排行榜网站快速排名推荐
  • 莱芜网站优化平台网站优化推广公司排名
  • 用html5做网站百度经验搜索引擎营销的案例
  • 公众号平台官网注册深圳抖音seo
  • 站长工具网站备案查询绍兴seo推广
  • 定制型网站 成功案例百度收录在线提交
  • 网站建设策划解决方案kol营销
  • 男女上做床全播放网站国内免费建站平台
  • nodejs可以做网站吗哪里做网络推广
  • 企业网站排名要怎么做课程培训
  • 开源零代码平台淄博网站制作优化
  • ps怎么做网站首页网络舆情监测与研判
  • 阳谷网站建设优化大师app下载
  • 网站制作哈尔滨黄页88
  • 做厂房出租有那些推广网站今日国际新闻最新消息十条