HarmonyOS 应用开发-鸿蒙微信(二):发现页面

178 阅读1分钟

话不多说,先上代码

页面代码

import FindItemViewModel from './model/weChatFindModel'
@Entry
@Component
export struct FindPage {

  build() {
    Column() {
          Text("发现")
            .height('6%')
            .fontSize(18)
            .margin({top:10})
            .fontWeight(FontWeight.Bold)

      List({initialIndex:0}){
        ForEach(FindItemViewModel.getFirstGridData(),(item)=>{
          ListItem(){
            Row(){
              Row(){
                Image(item.img)
                  .width(25)
                  .margin({left:15})
                Text(''+item.title)
                  .margin({left:15})
              }
              Image($r('app.media.ic_public_arrow_right_filled'))
                .width(20)
                .height(20)
                .margin({right:15})
            }
            .width('100%')
            .justifyContent(FlexAlign.SpaceBetween)

          }.margin({top:item.upperGap?10:0})
          .height(50)
          .width('100%')
          .borderRadius(10)
          .backgroundColor('#ffffff')
        })
      }
      .margin({top:10})
      .height('82%')
      .listDirection(Axis.Vertical)
      // .divider({strokeWidth:1,color:'#fffffa',startMargin:20,endMargin:0})
      .edgeEffect(EdgeEffect.Spring)
      .onScrollIndex((firstIndex:number,lastIndex:number)=>{
        console.log('first'+firstIndex,'last'+lastIndex)
      })
    }
    .height('100%')

  }
}

数据类代码

class MineItemResource{
  title:string;
  img:Resource;
  upperGap:boolean;
  routerGo?:string;
  constructor(title: string, img: Resource,upperGap:boolean,routerGo?:string) {
    this.title = title;
    this.img = img;
    this.upperGap = upperGap;
    this.routerGo =routerGo

  }
}

export class MineItemViewModel{
  getFirstGridData():Array<MineItemResource>{
    let firstGridData:MineItemResource[]=[
      new MineItemResource('朋友圈',$r('app.media.ic_public_circle_of_friends'),false),
      new MineItemResource('视频号',$r('app.media.ic_public_coolect'),true),
      new MineItemResource('直播',$r('app.media.ic_public_picture'),false),
      new MineItemResource('扫一扫',$r('app.media.ic_public_play_normal'),true),
      new MineItemResource('看一看',$r('app.media.ic_desktop_servicewidgets'),true),
      new MineItemResource('搜一搜',$r('app.media.ic_public_emoji'),false),
      new MineItemResource('附近',$r('app.media.ic_public_settings'),true),
      new MineItemResource('购物',$r('app.media.ic_public_shopping'),true),
      new MineItemResource('游戏',$r('app.media.ic_public_emoji'),false),
      new MineItemResource('小程序',$r('app.media.ic_public_applet'),true)

    ]
    return firstGridData
  }
}
export default new MineItemViewModel()

最终实现效果

截屏2023-11-21 15.47.37.png

还有很多不完善的地方,下一步继续完善