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

鸿蒙开发之ArkUI 界面篇 二十九 新闻列表

 如下的一个新闻列表:

首先分析需求,每一条新闻就是一个Item,每一条item由两条数据组成,分别是标题和时间,他们是垂直关系,所以组件构成是Colum+Text+Text,这里有一条分割线,下图红框处

初步想法可能是使用Text不要文字来实现,这里有一个更简洁的写法,border实现,指定为底部。

那数据来源是新闻列表的数组,为了超出屏幕高度还能显示,最外层加Scroll,又因为数据是会变的,所以数组需要加@State来修饰。文章对象定义

interface Article {
  title: string
  createTime: string
}

文章数组:

@State articles: Article[] = [
  {
    title: '近200+自动驾驶数据集全面调研!一览如何数据闭环全流程近200+自动驾驶数据集全面调研!一览如何数据闭环全流程',
    createTime: '2024-01-31 09:59:43'
  },
  {
    title: 'MySQL Shell 8.0.32 for GreatSQL编译二进制包',
    createTime: '2024-01-31 09:55:53'
  },
  {
    title: '在Redis中如何实现分布式事务的一致性?',
    createTime: '2024-01-31 09:54:51'
  },

  {
    title: '在Redis中如何实现分布式事务的一致性?',
    createTime: '2024-01-31 09:54:51'
  },

  {
    title: '在Redis中如何实现分布式事务的一致性?',
    createTime: '2024-01-31 09:54:51'
  },

  {
    title: '在Redis中如何实现分布式事务的一致性?',
    createTime: '2024-01-31 09:54:51'
  },

  {
    title: '在Redis中如何实现分布式事务的一致性?',
    createTime: '2024-01-31 09:54:51'
  },

  {
    title: '在Redis中如何实现分布式事务的一致性?',
    createTime: '2024-01-31 09:54:51'
  },

  {
    title: '在Redisddd 中如何实现分布式事务的一致性?',
    createTime: '2024-01-31 09:54:51'
  },
]

整个代码实现如下:

interface Article {
  title: string
  createTime: string
}
@Entry
@Component
struct Index {

  @State articles: Article[] = [
    {
      title: '近200+自动驾驶数据集全面调研!一览如何数据闭环全流程近200+自动驾驶数据集全面调研!一览如何数据闭环全流程',
      createTime: '2024-01-31 09:59:43'
    },
    {
      title: 'MySQL Shell 8.0.32 for GreatSQL编译二进制包',
      createTime: '2024-01-31 09:55:53'
    },
    {
      title: '在Redis中如何实现分布式事务的一致性?',
      createTime: '2024-01-31 09:54:51'
    },

    {
      title: '在Redis中如何实现分布式事务的一致性?',
      createTime: '2024-01-31 09:54:51'
    },

    {
      title: '在Redis中如何实现分布式事务的一致性?',
      createTime: '2024-01-31 09:54:51'
    },

    {
      title: '在Redis中如何实现分布式事务的一致性?',
      createTime: '2024-01-31 09:54:51'
    },

    {
      title: '在Redis中如何实现分布式事务的一致性?',
      createTime: '2024-01-31 09:54:51'
    },

    {
      title: '在Redis中如何实现分布式事务的一致性?',
      createTime: '2024-01-31 09:54:51'
    },

    {
      title: '在Redisddd 中如何实现分布式事务的一致性?',
      createTime: '2024-01-31 09:54:51'
    },
  ]

  build() {
    Scroll() {
      Column() {

        ForEach(this.articles, (item: Article, index: number) => {

          // 单个新闻结构
          Column() {
            Text(item.title)
              .width('100%')
              .fontSize(15)
              .fontColor('#303030')
              .lineHeight(20)
            Text(item.createTime)
              .margin({top: 15})
              .width('100%')
              .fontSize(12)
              .fontColor('rgb(192, 192, 192)')
          }
          .padding({top: 15, bottom: 15})
          .width('100%')
          .border({
            width: {bottom: 2},
            color: {bottom: '#f4f4f4'}
          })
        })
      }
      // .constraintSize({
      //   minHeight: '100%'
      // }) //当子组件占用空间超过设置的约束值时,会显示滚动条。
    }
    .padding({ left: 13, right: 13 })
    .width('100%')
    .height('100%')
  }
}

总结:鸿蒙开发中数据变化UI就需要跟着变化,这时候的数据只需@State修饰变量就好,Scroll能在垂直方向实现超出屏幕能够滚动看见,分割线用boder属性实现,对象的定义关键字是interface,多条数据需要的容器是是数组。


http://www.kler.cn/news/341905.html

相关文章:

  • PHP中的HTTP请求:获取taobao商品数据的艺术
  • 九、串口相关软件介绍
  • 鹏哥C语言64---第10次作业:数组相关
  • 【读书笔记·VLSI电路设计方法解密】问题10:从概念到硅片开发SoC芯片的主要任务
  • QT开发--QT基础
  • 【AIGC】ChatGPT提示词Prompt高效编写模式:结构化Prompt、提示词生成器与单样本/少样本提示
  • 25.第二阶段x86游戏实战2-背包属性补充
  • LeetCode 380. O(1) 时间插入、删除和获取随机元素
  • 科普向 -- 什么是RPC
  • 基于SpringBoot+Vue+Uniapp家具购物小程序的设计与实现
  • Qt(10.10)
  • 医疗革新:Spring Boot医院管理系统
  • 【网络安全 | Java代码审计】华夏ERP(jshERP)v2.3
  • 【华为HCIP实战课程七】OSPF邻居关系排错MTU问题,网络工程师
  • 20241007给荣品RD-RK3588-AHD开发板刷Rockchip原厂的Buildroot时使用ADB
  • 【单链表的模拟实现Java】
  • 设计模式笔记
  • 深度学习:深度学习的主流框架
  • StarRocks报错:Getting analyzing error. Detail message: Unknown database ‘你的库名‘.
  • 使用 maven-shade-plugin 打包你的 Maven 项目