HarmonyOS renderNode的frame设置问题

设置rendernode的frame其实是想和父类容器大小一样,但貌似在添加readernode的时候 父类frame为0 不太方便取,怎么做能方便的从父类容器拿到父类容器的frame呢?使用的代码片段如下:

makeNode(uiContext: UIContext): FrameNode | null { 
  this.rootNode = new FrameNode(uiContext); 
  const renderNode = this.rootNode.getRenderNode(); 
  if (renderNode !== null) { 
    let newNode = new MyRenderNode(); 
    const width: number = renderNode.frame.width // 为0 
    const height: number = renderNode.frame.height // 为0,怎么能取到呢,rootNode和uiContext好像都拿不到frame信息 
    newNode.frame = { x: 0, y: 0, width: width, height: height } 
    newNode.onDrawCB = this.onDrawCB 
    renderNode.appendChild(newNode); 
  } 
  return this.rootNode; 
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
HarmonyOS
2024-08-09 15:31:27
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
FengTianYa

renderNode本身没有布局算法,不会把大小传递给子节点,没有继承关系,可以从父节点拿到frame属性再往下设置,直接设置match_parent这种是没有的,如果没有给frame赋值,则默认值为{“x”:0,“y”:0,“width”:0,“height”:0},比如:

const renderNode = new RenderNode(); 
renderNode.backgroundColor = 0xffff0000; 
renderNode.frame = { x: 10, y: 10, width: 100, height: 100 }; 
const frame = renderNode.frame; 
console.log(`frame====` + JSON.stringify(frame)); 
const width = renderNode.frame?.width 
const height = renderNode.frame?.height 
console.log("wid==" + width, "hei====" + height); 
const renderNode2 = new RenderNode(); 
renderNode2.frame = frame; 
console.log(`frame2====` + JSON.stringify(renderNode2.frame));
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
分享
微博
QQ
微信
回复
2024-08-09 17:58:07
相关问题
HarmonyOS RenderNode单位换算
568浏览 • 1回复 待解决
HarmonyOS list设置问题
426浏览 • 1回复 待解决
HarmonyOS scroll高度设置问题
2031浏览 • 1回复 待解决
HarmonyOS TextstateStyles设置fontColor问题
1034浏览 • 1回复 待解决
HarmonyOS 关于alertDialog样式设置问题
611浏览 • 1回复 待解决
HarmonyOS 关于代理提醒设置问题
1379浏览 • 1回复 待解决
HarmonyOS 阴影设置问题
982浏览 • 1回复 待解决
HarmonyOS 关于动态设置组件宽度问题
1151浏览 • 1回复 待解决
关于DES加密设置问题
857浏览 • 1回复 待解决
HarmonyOS 启动图设置问题
850浏览 • 1回复 待解决
HarmonyOS 设置横竖屏问题
640浏览 • 1回复 待解决
HarmonyOS page设置全屏问题
848浏览 • 1回复 待解决
HarmonyOS 设置屏幕亮度问题
1173浏览 • 1回复 待解决
HarmonyOS Flex 布局设置问题
1429浏览 • 1回复 待解决
HarmonyOS 启动页设置问题
1426浏览 • 1回复 待解决
HarmonyOS 横竖屏设置问题
626浏览 • 1回复 待解决