实现应用消息列表鸿蒙示例代码 原创

鸿蒙场景化示例代码技术工程师
发布于 2025-2-27 15:32
浏览
0收藏

本文原创发布在华为开发者社区

介绍

本示例为模拟应用内消息场景。模拟实现的主要功能有以下两点:

  • 模拟消息设置页面,可以设置接受新消息提醒和横幅提醒
  • 模拟应用消息列表,可以查看应用内所有消息,也可以点击进入查看消息详细内容

实现应用消息列表源码链接

效果预览

实现应用消息列表鸿蒙示例代码-鸿蒙开发者社区

使用说明

  1. 进入应用后,显示两个按钮,点击模拟消息设置页面跳转,即可跳转至消息设置页面。
  2. 消息设置页面点击APP内横幅提醒的开关,可以进行横幅提醒的开关设置。
  3. 返回后点击模拟应用列表消息跳转,跳转至应用列表消息页面,展示应用内所有消息。
  4. 点击各个消息,跳转至消息详情页面,查看消息的具体内容。

实现思路

主页设置按钮进行跳转

通过设置两个Button组件,点击进行不同页面的跳转。

Button("模拟消息设置页面调转")
  ···
  .onClick(() => {
    this.pathStack.pushPath({ name: "MessageSetting" })
  })
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

消息设置页面的实现

  1. 通过Toggle组件实现两种状态之间的切换,使用开关Switch样式,用来控制设备的横幅提醒功能的启停。具体事项:通过调用Toggle函数,传入一个对象参数,该参数包含type和isOn两个属性。type属性指定了Toggle的样式,isOn属性指定Toggle的初始状态,即是否选中。
Toggle({ type: ToggleType.Switch, isOn: true })
  .selectedColor('#00a57c')
  .onChange((isOn: boolean) => {
    console.info('Component status:' + isOn)
  })
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  1. ForEach就爱在所有消息设置内容。
ForEach(this.messageSettingRender, (settingItem: MessageSettingRender) => {
  Column() {
    Column() {
      Text(settingItem.settingDescription)
    }
  }
})
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

应用消息列表的实现

  1. 首先定义ListMessageRender,确定数据的结构构成。
class ListMessageRender {
  renderImg: ResourceStr
  renderTitle: ResourceStr
  renderSubTitle: ResourceStr
  renderTime: string
  renderQuantity?: string
  ···
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  1. 定义设置按钮,点击后可跳转至消息设置页面。
Button("去开启")
  .height(25)
  .fontSize(12)
  .backgroundColor("#ff7c1d")
  .onClick(() => {
    this.pathStack.pushPath({ name: "MessageSetting" })
  })
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  1. 定义查看系统消息按钮,点击跳转至系统消息页面,并且会重新加载数据。
.onClick(() => {
  this.pathStack.pushPathByName("SystemMessage", this.newsAdapter, true)
})
  • 1.
  • 2.
  • 3.
  1. 点击List中每个item,跳转到相关的详情页面,传入的参数有detail,releaseTime。
.onClick(() => {
  this.pathStack.pushPathByName("MessageDetail",{ detail: item, releaseTime: newsItem.timePoint } as MessageDetailParam)
})
  • 1.
  • 2.
  • 3.

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
分类
已于2025-2-28 14:49:14修改
收藏
回复
举报


回复
    相关推荐