HarmonyOS鸿蒙Next中关于组件优先级问题

HarmonyOS鸿蒙Next中关于组件优先级问题 我在一个Row组件里放了两个Text组件,想实现两个Text组件靠在一起且自适应宽度,当Row组件的宽度空间不足时,左侧Text组件可以末尾省略显示,但不影响右侧Text组件完整显示,以下是我的代码,请问为什么当空间不足时左侧Text组件直接消失了,如果实现我想要的预期效果?

Row() {
  Text(this.title)
    .fontSize(17)
    .fontWeight(500)
    .maxLines(1)
    .textOverflow({ overflow: TextOverflow.Ellipsis })
    .textAlign(TextAlign.Center)
    .onClick(() => {
      this.title += '加加';
    })

  Text('(99)')
    .fontSize(17)
    .fontWeight(500)
    .maxLines(1)
    .textOverflow({ overflow: TextOverflow.Ellipsis })
    .textAlign(TextAlign.Start)
    .displayPriority(2)
}
.justifyContent(FlexAlign.Center)
.width('100%')

更多关于HarmonyOS鸿蒙Next中关于组件优先级问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

由于第二个Text组件设置了displayPriority属性,该属性若父容器空间不足,隐藏低优先级子组件。若某一优先级的子组件被隐藏,则优先级更低的子组件也都被隐藏。

参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-universal-attributes-layout-constraints-V5#displaypriority

下面提供一个demo参考:

@Component
struct Index {
  @State title: string = "就还是卡视角拉克丝捡垃圾积分"

  build() {
    Column() {
      Flex({ direction: FlexDirection.Row, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Start }) {
        Text(this.title)
          .fontSize(17)
          .fontWeight(500)
          .maxLines(1)
          .textOverflow({ overflow: TextOverflow.Ellipsis })
          .textAlign(TextAlign.Center)// .flexBasis("auto")
          .onClick(() => {
            this.title += '123'
          })
          .backgroundColor(Color.Yellow)
        Text("(99)")
          .fontSize(17)
          .fontWeight(500)
          .maxLines(1)// .textOverflow({ overflow: TextOverflow.Ellipsis })
          .textAlign(TextAlign.Start)
          .flexShrink(0)
      }
      //.justifyContent(FlexAlign.Center)
      .width('100%')
    }
  }
}

更多关于HarmonyOS鸿蒙Next中关于组件优先级问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,组件优先级主要通过任务调度和资源分配机制来管理。系统会根据组件的类型、运行状态以及用户交互需求,动态调整组件的优先级。例如,前台应用组件的优先级通常高于后台应用组件,以确保用户体验的流畅性。此外,系统还提供了优先级继承机制,当某个高优先级任务依赖于低优先级任务时,低优先级任务的优先级会被临时提升,以避免任务阻塞。开发者可以通过TaskDispatcherTaskPriority等API来设置和调整任务的优先级,但系统最终会根据整体资源情况动态调整。

在HarmonyOS鸿蒙Next中,组件的优先级主要影响其在布局中的显示顺序和事件处理顺序。开发者可以通过设置z-index属性来调整组件的层级关系,z-index值越大,组件越靠前显示。此外,事件处理的优先级通常遵循“先捕获后冒泡”的原则,开发者可以通过onCaptureonBubble方法自定义事件处理逻辑。合理设置组件优先级有助于优化界面布局和交互体验。

回到顶部