HarmonyOS Next 入门实战 - 基础组件、页面实现

基础组件

常用组件

  • Text:显示文本内容
  • Image:显示图片
  • Button:显示一个按钮
  • Column: 纵向布局
  • Row:横向布局
  • List:列表
    各组件的用法
Text("文本组件")
  .fontColor(Theme.Color.textPrimary)
  .fontWeight(FontWeight.Medium)
  .fontSize(20)

Image($r('app.media.banner'))
        .objectFit(ImageFit.Fill)
        .width('100%')
        .height(100)
        .opacity(191)
 
Button("按钮").onClick((event) => {
   
    //按钮点击事件
})

Column() {
   
  Text("文本1")
  .fontColor(Theme.Color.textPrimary)
  .fontWeight(FontWeight.Medium)
  .fontSize(20)
  Text("文本2")
  .fontColor(Theme.Color.textPrimary)
  .fontWeight(FontWeight.Medium)
  .fontSize(20)
  Text("文本3")
  .fontColor(Theme.Color.textPrimary)
  .fontWeight(FontWeight.Medium)
  .fontSize(20)
}.width('100%')

Row() {
   
  Text("文本1")
  .fontColor(Theme.Color.textPrimary)
  .fontWeight(FontWeight.Medium)
  .fontSize(20)
  Text("文本2")
  .fontColor(Theme.Color.textPrimary)
  .fontWeight(FontWeight.Medium)
  .fontSize(20)
  Text("文本3")
  .fontColor(Theme.Color.textPrimary)
  .fontWeight(FontWeight.Medium)
  .fontSize(20)
}.width('100%')

List() {
   
  ForEach(this.items, (item: string, index) => {
   
    ListItem(){
   
      Text(item).padding(10).width('100%')
    }
  })
}

Grid
用于展示网格列表

Grid(){
   
  GridItem(){
   
    Text("item1").padding(10)
  }
  GridItem(){
   
    Text("item2").padding(10)
  }
  GridItem(){
   
    Text("item12").padding(10)
  }
}.columnsTemplate("1f 1f 1f")  //列分布规则
.rowsTemplate("1f 1f 1f")		//行分布规则

Grid的夸行/列设置

在创建Grid时可以传入GridLayoutOptions来实现网格所占行/列数

  1. regularSize,类型为[number,number],用来定义一般规则的Item所占的行/列数
  2. irregularIndexes,类型为number[],用来指定不遵循一般规则的Item索引。
  3. onGetIrregularSizeByIndex,类型(index: number) => [number, number]的回调函数,irregularIndexes中配置的索引会回调到此函数,返回结果表示该Item所占用的行/列数,[所占行数,所占列数]
@Preview
@Component
struct GridList {
   
  item: Array<number> = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
  layoutOption: GridLayoutOptions = {
   
    regularSize: [1, 1],  //一般规则的item占用1行1列
    irregularIndexes: [0, 5], //非一般规则item的索引
    onGetIrregularSizeByIndex: (index: number) => {
   
      if (index == 0) {
   
        return [1, 2]  //0索引处的item占用1行2列
      } else {
   
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值