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

上海网站开发技术最好公司上海谷歌优化

上海网站开发技术最好公司,上海谷歌优化,网架钢结构公司,网站建设走的路线风格【高心星出品】 文章目录 ContentSlot的使用使用方法案例运行结果 完整代码 ContentSlot的使用 用于渲染并管理Native层使用C-API创建的组件同时也支持ArkTS创建的NodeContent对象。 支持混合模式开发,当容器是ArkTS组件,子组件在Native侧创建时&#…

【高心星出品】

文章目录

      • ContentSlot的使用
        • 使用方法
        • 案例
          • 运行结果
        • 完整代码

ContentSlot的使用

用于渲染并管理Native层使用C-API创建的组件同时也支持ArkTS创建的NodeContent对象。

支持混合模式开发,当容器是ArkTS组件,子组件在Native侧创建时,推荐使用ContentSlot占位组件。

ContentSlot只是一个语法节点,无通用属性,不参与布局和渲染,所以布局属性是其父容器提供。

使用方法
ContentSlot(content: Content)

这里的content一般提供NodeContent对象,NodeContent对象里面一般放入typenode节点对象,而typenode节点对象可以增加新的typenode节点对象,也可以将@builder全局构建函数转化为ComponentContent加入到typenode对象中,所以ContentSlot的使用结构为:

contentslot---->nodecontent--->typenode--->componentcontent--->@builder全局构建函数
案例

接下来通过一个案例展示使用typenode的appchild来增加子节点,和通过addComponentContent来增加子节点两种方式渲染UI界面的方法。

运行结果

在这里插入图片描述

全局构建函数

生成一个文本布局

interface param {str: stringnum: number
}@Builder
function genitem(p: param) {Text(p.str + p.num).fontSize(24).fontWeight(FontWeight.Bolder)
}

typenode生成线性布局

typenode生成线性布局并且设置相关属性。

// 创建水平线性布局
let row = typeNode.createNode(this.context, 'Row')
// 设置相关属性
row.attribute.width('100%')
row.attribute.backgroundColor(Color.Red)
row.attribute.justifyContent(FlexAlign.SpaceEvenly)
row.attribute.padding(20)
// 初始化
row.initialize()

typenode生成文本组件和按钮组件

// 创建text组件
let text1 = typeNode.createNode(this.context, 'Text')
text1.attribute.fontColor(Color.White).fontWeight(FontWeight.Bolder)
// 初始化文本
text1.initialize('typenode--child1')
// 创建button组件
let button1 = typeNode.createNode(this.context, 'Button')
// 按钮绑定事件  一处文本组件
button1.attribute.onClick(()=>{row.removeChild(text1)
})
// 初始化按钮文本
button1.initialize('typenode--child2')
// 加入线性布局中
row.appendChild(text1)
// 加入线性布局中
row.appendChild(button1)

typenode加入componentcontent

// 生成componentcontent
let buildercontent = new ComponentContent(this.context, wrapBuilder<[param]>(genitem),{ str: 'componentcontent--child', num: 1 } as param, { nestingBuilderSupported: true })
// 创建新的线性布局
let row1 = typeNode.createNode(this.context, 'Row')
row1.attribute.padding(20)
row1.initialize()
// 增加节点
row1.addComponentContent(buildercontent)
// 将两个线性布局加入nodecontent
this.content.addFrameNode(row1)
this.content.addFrameNode(row)

在build函数中显示

build() {Column() {//contentslot---->nodecontent--->typenode--->componentcontent// 使用contentslot方法显示布局ContentSlot(this.content)}.height('100%').width('100%')
}
完整代码
import { ComponentContent, FrameNode, NodeContent, typeNode } from '@kit.ArkUI';interface param {str: stringnum: number
}@Builder
function genitem(p: param) {Text(p.str + p.num).fontSize(24).fontWeight(FontWeight.Bolder)
}@Entry
@Component
struct Nodecontentpage {@State message: string = 'Hello World';private context: UIContext = this.getUIContext()private content: NodeContent = new NodeContent()aboutToAppear(): void {// 创建水平线性布局let row = typeNode.createNode(this.context, 'Row')// 设置相关属性row.attribute.width('100%')row.attribute.backgroundColor(Color.Red)row.attribute.justifyContent(FlexAlign.SpaceEvenly)row.attribute.padding(20)// 初始化row.initialize()// 创建text组件let text1 = typeNode.createNode(this.context, 'Text')text1.attribute.fontColor(Color.White).fontWeight(FontWeight.Bolder)// 初始化文本text1.initialize('typenode--child1')// 创建button组件let button1 = typeNode.createNode(this.context, 'Button')// 按钮绑定事件  一处文本组件button1.attribute.onClick(()=>{row.removeChild(text1)})// 初始化按钮文本button1.initialize('typenode--child2')// 加入线性布局中row.appendChild(text1)// 加入线性布局中row.appendChild(button1)// 生成componentcontentlet buildercontent = new ComponentContent(this.context, wrapBuilder<[param]>(genitem),{ str: 'componentcontent--child', num: 1 } as param, { nestingBuilderSupported: true })// 创建新的线性布局let row1 = typeNode.createNode(this.context, 'Row')row1.attribute.padding(20)row1.initialize()// 增加节点row1.addComponentContent(buildercontent)// 将两个线性布局加入nodecontentthis.content.addFrameNode(row1)this.content.addFrameNode(row)}build() {Column() {//contentslot---->nodecontent--->typenode--->componentcontent// 使用contentslot方法显示布局ContentSlot(this.content)}.height('100%').width('100%')}
}//contentslot---->nodecontent--->typenode--->componentcontent// 使用contentslot方法显示布局ContentSlot(this.content)}.height('100%').width('100%')}
}
http://www.mmbaike.com/news/48159.html

相关文章:

  • 项目建设表态发言seo排名怎样
  • 枣庄做网站手机版百度入口
  • 做网站用最新软件农产品网络营销
  • 山西太原做企业网站建设的公司在线网页服务器
  • 无锡网站商城建设网站关键词排名优化客服
  • 商城网站建设流程seo人员的职责
  • 网站开发 哪种效率高公司怎么在网上推广
  • 网站开发的软件运营培训班学费大概多少
  • 网站开发合同注意目前最新的营销方式有哪些
  • wordpress增加下载量显示整站优化推广
  • 网络规划设计师培训网站seo外包靠谱吗
  • 网站的设计步骤做推广怎么赚钱
  • 五十一团 黑龙江生产建设兵团知青网站近期发生的重大新闻
  • 企业网站做百度小程序seo点击软件手机
  • 哪些网站做简历合适seo的优点
  • 软件开发服务公司网站关键词怎么优化到首页
  • 建品牌网站公司求老哥给几个靠谱的网站
  • 最火爆的视频制作app镇江seo优化
  • 先注册域名后建设网站可以吗营销网页设计公司
  • 大闸蟹公司宣传册设计样本重庆seo结算
  • 咨询手机网站建设平台长沙网络营销推广公司
  • 东莞市建设网站seo营销名词解释
  • 做游戏网站公司网络推广文案有哪些
  • 广告网站建设与制作公司seo云优化是什么意思
  • 泉州建行 网站seo营销方法
  • 手机产品 网站建设好口碑关键词优化
  • 网站备案个人可以做吗长沙网站优化seo
  • 莆田网站建设制作seo咨询价格找推推蛙
  • 可以做海报的网站网站seo去哪个网站找好
  • 义乌市微畅网络科技有限公司优化落实防控措施