HarmonyOS @Builder的内容如何刷新
/**
标题栏在线状态区域内容
*/
@ObservedV2
export class AIOTitleOnlineStatusItem {
builder: WrappedBuilder<[AIOTitleOnlineStatusItem]> | undefined = undefined;
@Trace title: string = ‘’;
@Trace subTitle: string = ‘’;
}
/**
标题栏更新的数据实体
*/
@ObservedV2
export class AIOTitleModel {
@Trace title: string = ‘’;
@Trace unreadCnt: number = 0;
@Trace memberCnt: number = 0;
@Trace onlineStatusItem: AIOTitleOnlineStatusItem | undefined = undefined;
}
const TAG = ‘TroopAIOTitleComponent’;
@Extend(Text) function navigationTextStyle() {
.lineHeight(24)
.fontColor(Color.Black)
.fontSize(17)
.textAlign(TextAlign.Start)
.fontWeight(500)
.textOverflow({ overflow: TextOverflow.Ellipsis })
.maxLines(1)
}
@Builder
export function getOnlineStatusBuilder(statusItem: AIOTitleOnlineStatusItem) {
Row() {
Text(statusItem.title).lineHeight(16)
.fontSize(12)
Text(statusItem.subTitle).lineHeight(16)
.fontSize(12)
}.width(‘100%’)
.align(Alignment.Start)
.height(20)
}
const model: AIOTitleModel = new AIOTitleModel();
@Entry
@Component
export struct Test {
aboutToAppear(): void {
model.title = ‘测试标题’;
model.unreadCnt = 25;
}
build() {
Column() {
TitleComponent()
Button(‘点击变更title内容’).onClick(() => {
if (model.onlineStatusItem != undefined) {
model.onlineStatusItem.title += ‘11’;
model.onlineStatusItem.builder = wrapBuilder(getOnlineStatusBuilder)
// model.onlineStatusItem.builder = wrapBuilder(getOnlineStatusBuilder({ paramsItem: this.onlineStatusItem }))
} else {
model.onlineStatusItem = {
builder: wrapBuilder(getOnlineStatusBuilder),
// builder: wrapBuilder(getOnlineStatusBuilder({ paramsItem: this.onlineStatusItem })),
title: ‘当前在线’,
subTitle: ‘-test’
};
}
}).margin({
top: 20
})
}.alignItems(HorizontalAlign.Center)
}
}
@Component
export struct TitleComponent {
build() {
// 内容区域
Flex({ wrap: FlexWrap.Wrap, justifyContent: FlexAlign.Start, alignContent: FlexAlign.SpaceEvenly }) {
// 昵称
Text() {
// 左边的小耳朵
Span(“TitleComponent”)
// 标题
Span(model.title)
// 右边的小耳朵
// 群成员数量
Span((${model.memberCnt}))
}.navigationTextStyle()
.alignSelf(ItemAlign.Start)
.width('60%')
.backgroundColor(Color.Pink)
// 在线状态
if (model.onlineStatusItem != undefined) {
model.onlineStatusItem.builder?.builder(model.onlineStatusItem)
}
}.height(44)
.alignSelf(ItemAlign.Center)
.backgroundColor(Color.Yellow)
}
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
- 41.
- 42.
- 43.
- 44.
- 45.
- 46.
- 47.
- 48.
- 49.
- 50.
- 51.
- 52.
- 53.
- 54.
- 55.
- 56.
- 57.
- 58.
- 59.
- 60.
- 61.
- 62.
- 63.
- 64.
- 65.
- 66.
- 67.
- 68.
- 69.
- 70.
- 71.
- 72.
- 73.
- 74.
- 75.
- 76.
- 77.
- 78.
- 79.
- 80.
- 81.
- 82.
- 83.
- 84.
- 85.
- 86.
- 87.
- 88.
- 89.
- 90.
- 91.
- 92.
- 93.
- 94.
- 95.
- 96.
- 97.
- 98.
- 99.
- 100.
- 101.
- 102.
- 103.
- 104.
- 105.
- 106.
- 107.
- 108.
- 109.
- 110.
- 111.
HarmonyOS
赞
收藏 0
回答 1
相关问题
HarmonyOS @builder方法的ui不刷新
1227浏览 • 1回复 待解决
HarmonyOS @Builder UI刷新问题
741浏览 • 1回复 待解决
HarmonyOS BuilderParam传入的Builder方法刷新问题
515浏览 • 1回复 待解决
HarmonyOS TabContent内容如何手动刷新
713浏览 • 1回复 待解决
HarmonyOS 如何刷新页面内容
613浏览 • 1回复 待解决
HarmonyOS @State状态量刷新、@Builder不会响应变化
743浏览 • 0回复 待解决
#鸿蒙通关秘籍#如何使用@Builder自定义菜单内容
946浏览 • 1回复 待解决
HarmonyOS 在@builder中使用引用传递无法触发UI刷新
588浏览 • 1回复 待解决
HarmonyOS Builder组件嵌套调用时,每个Builder都需要包一层引用才能刷新,有没有更好的办法?
805浏览 • 1回复 待解决
HarmonyOS builder 作为 builder 的参数传递
911浏览 • 1回复 待解决
HarmonyOS 如何使用全局的Builder
621浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何根据鸿蒙卡片的状态动态刷新不同内容?
937浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何通过message事件刷新鸿蒙OS卡片中的内容
885浏览 • 1回复 待解决
HarmonyOS 想在builder中插入builder
594浏览 • 1回复 待解决
HarmonyOS 自定义builder方法, 参数是按引用传递, 当状态值修改时, 不触发builder方法, 不会刷新UI
1189浏览 • 1回复 待解决
HarmonyOS 想要通过@State修饰的变量刷新@Builder方法内的UI,只能通过引用传递参数吗?
1128浏览 • 1回复 待解决
HarmonyOS log真机调试日志刷新太多,需要的内容不好查找
1077浏览 • 1回复 待解决
HarmonyOS 关于对象数组内容变更不会引起UI刷新
1870浏览 • 0回复 待解决
HarmonyOS WrappedBuilder的使用。如何动态更新全局@Builder
1270浏览 • 1回复 待解决
如何做到,每次打开服务中心的时候去刷新一次卡片内容?
7653浏览 • 2回复 待解决
#鸿蒙学习大百科#如何向RichEditor文本框中添加一个@Builder修饰的内容?
821浏览 • 1回复 待解决
HarmonyOS 使用@builder和@builderParam时,@builder中的ui不会动态更新
1488浏览 • 1回复 待解决
HarmonyOS promptAction.openCustomDialog 里面的builder内容无法通过expandSafeArea,扩充到安全区域,希望内容视图可以挨着最底边
435浏览 • 1回复 待解决
HarmonyOS 按Refresh组件示例代码,在不刷新的常规场景时候,builder内的组件也会露出一半
990浏览 • 1回复 待解决
HarmonyOS bindSheet的builder对于Component无效
529浏览 • 1回复 待解决
@ObservedV2 需要 new 出来,不能直接赋值。