鸿蒙开发实战-运动app开发

主要开发内容

3.1 开发准备

想要实现以下功能的话,需要学习“Tabs”,“TabContent”,“Row”,“Column”,等等相关技术。

主页

静坐页面
  除此之外,还需要先准备8张图标的图片以及应用开发所需要的图片。

3.2 tabs功能实现

应用中的Tabs功能通过采用了TabsController来实现。TabsController是一个在鸿蒙开发框架中用于管理Tabs的控制器,它负责处理Tabs之间的切换逻辑。以下是实现Tabs功能的关键代码部分:

// 定义TabsController实例
private controller: TabsController = new TabsController()
// ...
// 在build方法中使用Tabs组件,并传入controller
build() {
  Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
    Tabs({ controller: this.controller }) {
      // ...(省略Tabs中的内容)
    }
  }
}

在上述代码中,通过创建一个TabsController实例并赋值给controller成员变量,将该控制器传递给Tabs组件。Tabs组件会根据传入的控制器进行管理,从而实现Tabs之间的切换。

关于TabsController的具体使用,我们可以看到定义了多个方法,如IndexClick、messageClick、myClick和meClick等。这些方法分别用于处理不同Tabs的点击事件,并在点击时调用controller.changeIndex(index)来切换到对应的Tabs。通过TabsController的管理和控制,实现了在MyNewsIndex应用中不同Tabs之间的切换效果。用户点击不同的Tabs时,调用相应的方法切换到对应的内容,从而提供了用户友好的导航和浏览体验。Tabs功能的实现使得用户可以方便地切换到不同的运动分类或内容页面,增强了应用的可用性。

@Entry
@Component
struct MyNewsIndex {
  private controller: TabsController = new TabsController()
  @State SelectPos:number=0;
  public IndexClick(){
    this.SelectPos=0;
    this.controller.changeIndex(0)
  }
  public messageClick(){
    this.SelectPos=1;
    this.controller.changeIndex(1)
  }
  public myClick(){
    this.SelectPos=2;
    this.controller.changeIndex(2)
  }
  public meClick(){
    this.SelectPos=3;
    this.controller.changeIndex(3)
  }

  build() {
    Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
      Tabs({ controller: this.controller }) {
        TabContent() {
          Column() {
            zhu()
          }

        }
        .tabBar()
        TabContent() {
          Column() {
            jingzuo()
          }

        }
        .tabBar()
        TabContent() {
          Text("我men的")
            .width('100%').height('100%')
            .fontSize(50)
            .textAlign(TextAlign.Center)
            .fontColor(Color.White)
            .backgroundColor(0X6495ED)
        }
        .tabBar()
        TabContent() {
          Text("我")
            .width('100%').height('100%')
            .fontSize(50)
            .textAlign(TextAlign.Center)
            .fontColor(Color.White)
            .backgroundColor(Color.Black)

        }
        .tabBar()
      }
      .scrollable(false)
      .barHeight(0)
      .animationDuration(0)
      

3.3 底部导航栏

通过Row和Column以及Text,Image等组件,实现了底部的导航栏。四个不同的图标分别代表主页、消息、我的、我,通过点击不同图标,用户可以快速切换到对应的页面,提升用户友好性。以下是参考代码:

 Row() {
        Column(){
          Image((this.SelectPos==0?$r('app.media.yundong1'):$r('app.media.yundong')))
            .width(30)
            .height(30)
            .margin(12)

        }
        .layoutWeight(1)

        .height("100%")
        .onClick(this.IndexClick.bind(this))

        Column(){
          Image((this.SelectPos==1?$r('app.media.gangling1'):$r("app.media.gangling")))
            .width(35)
            .height(30)
            .margin(12)

        }
        .layoutWeight(1)

        .height("100%")
        .onClick(this.messageClick.bind(this))

        Column(){
          Image((this.SelectPos==2?$r('app.media.zhidao1'):$r('app.media.zhidao')))
            .width(30)
            .height(30)
            .margin(12)

        }
        .layoutWeight(1)

        .height("100%")
        .onClick(this.myClick.bind(this))

        Column(){
          Image((this.SelectPos==3?$r('app.media.me1'):$r('app.media.me')))
            .width(30)
            .height(30)
            .margin(12)
        }
        .layoutWeight(1)

        .height("100%")
        .onClick(this.meClick.bind(this))
      }
      .alignItems(VerticalAlign.Bottom)
      .width('100%')
      .height(50)
      .margin({top:0,right:0,bottom:10,left:0})
    }
    .width('100%')
    .height('100%')
  }
}

4. 总结

本项目使用鸿蒙框架的代码结构清晰且容易理解。通过引入页面组件(zhu和jingzuo)以及使用装饰器(@Entry和@Component)来定义组件,代码使得组件的结构和布局一目了然,用户可以轻松切换到不同的运动分类,包括主页、精选等,还提供了用户友好的界面导航,使用户能够快速找到符合个人兴趣的运动内容,除此之外,本项目通过鸿蒙采用了灵活的Flex布局,确保在不同设备上都能够实现良好的自适应效果。

其次,鸿蒙框架提供了一系列的布局和样式管理工具,如Flex、Column、Tabs等,使得页面的布局和样式定义更加方便。这种灵活性使得开发者可以更容易地创建各种复杂的页面布局,同时保持代码的简洁性。

  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
鸿蒙开发app实战源码是指使用鸿蒙系统开发应用程序所涉及的源代码示例。鸿蒙系统是由华为公司推出的全场景分布式操作系统,旨在为开发者提供更简单、高效的应用开发环境。 鸿蒙开发app实战源码包括了开发鸿蒙应用所需的各种源代码示例,其中包括界面布局、事件处理、数据交互等核心功能的实现方法。通过学习这些源码示例,开发人员可以更深入了解鸿蒙系统开发方式和特性,从而更快地上手开发鸿蒙应用。 鸿蒙开发app实战源码通常包含以下几个方面的内容: 1. 页面布局示例:展示了如何使用鸿蒙系统提供的布局组件来构建应用界面,包括线性布局、网格布局等。 2. 事件处理示例:介绍了如何处理用户的各种操作事件,比如点击、触摸等,以及如何响应这些事件并进行相应的处理逻辑。 3. 数据交互示例:演示了如何使用鸿蒙系统提供的数据交互接口与后台服务器进行数据交互,包括发送请求、接收响应等。 通过实际的源码示例,开发人员可以更加直观地了解鸿蒙系统开发流程和技术细节,加速自己的学习和开发进度。同时,源码示例也为开发人员提供了一些最佳实践和经验总结,可以帮助他们更好地编写高质量的鸿蒙应用代码。 总之,鸿蒙开发app实战源码是开发者学习和掌握鸿蒙应用开发的重要资源,通过学习这些源码示例,开发人员能够更好地开发出符合用户需求和有良好用户体验的鸿蒙应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值