鸿蒙实战案例-欢迎页面UI实现及首页Tabs

前言

       欢迎来到我的鸿蒙移动开发项目!我将致力于使用鸿蒙操作系统打造出色的移动应用。让我们一起开启创新的旅程!现在我们将做一个关于健康的软件,本次带来的是首页Tabs!


一、设计与布局

界面设计

        这是我们这次要做的首页UI设计,这次我们用到了Tabs组件,Tabs组件可以实现页面内视图内容快速切换,包含TabBar和TabContent两个部分。

        本次我们做首页的一个布局

这个是我们首页的一个布局效果:

二、步骤

1.第一步,我们首先找到index页面,将其进行进一步开发

2.找到页面后我们开始敲击代码,最终展示为:

三、相关代码

import { CommonConstants } from '../common/constants/CommonConstants'
import RecordIndex from '../view/record/RecordIndex'
@Entry
@Component
struct Index {
  @State message: string = 'Hello World'

  @Builder TabBarBuilder(title:ResourceStr,image:ResourceStr,index:number){
    Column({space:CommonConstants.SPACE_8}){
      Image(image)
        .width(25)
      Text(title)
        .fontSize(14)
    }
  }

  build() {
    Tabs({barPosition:BarPosition.End}) {
      TabContent(){
        RecordIndex()
      }
      .tabBar(this.TabBarBuilder($r('app.string.tab_record'),$r('app.media.ic_calendar'),0))

      TabContent(){
        Text('发现页面')
      }
      .tabBar(this.TabBarBuilder($r('app.string.tab_discover'),$r('app.media.discover'),1))

      TabContent(){
        Text('我的主页')
      }
      .tabBar(this.TabBarBuilder($r('app.string.tab_user'),$r('app.media.ic_user_portrait'),2))
    }
    .width('100%')
    .height('100%')
  }
}

总结

        这次我们创建了一个包含三个选项卡的界面。每个选项卡中都有一个标签栏,分别显示了"记录"、"发现页面"和"我的主页"的内容。整体上,这段代码实现了一个具有选项卡功能的界面,其中包含三个不同的页面。

  • 15
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,那我来具体介绍一下u-tabs在订单页面中如何实现在其他页面传参时光标对应。 假设我们有一个订单页面,其中有三个tab分别对应三个订单信息的输入框。我们可以在其他页面中传入一个参数,告诉订单页面需要显示哪个订单的输入框,并将光标自动聚焦在该输入框中。具体实现步骤如下: 1. 在订单页面中,给每个tab的输入框添加一个id,方便我们在其他页面中获取该元素。 ```html <u-tabs id="orderTabs"> <u-tab title="订单1"> <input type="text" id="order1Input" name="order1Input"> </u-tab> <u-tab title="订单2"> <input type="text" id="order2Input" name="order2Input"> </u-tab> <u-tab title="订单3"> <input type="text" id="order3Input" name="order3Input"> </u-tab> </u-tabs> ``` 2. 在其他页面中,传入需要显示的订单的参数值,并将其存储在sessionStorage中。 ```javascript // 假设需要显示的订单是订单2 sessionStorage.setItem("activeTab", "订单2"); ``` 3. 在订单页面中,获取sessionStorage中存储的参数值,并根据该参数值激活对应的tab,并将光标聚焦在对应的输入框中。 ```javascript // 获取sessionStorage中存储的参数值 const activeTab = sessionStorage.getItem("activeTab"); // 激活对应的tab const orderTabs = document.getElementById("orderTabs"); const tabs = orderTabs.querySelectorAll("u-tab"); tabs.forEach((tab, index) => { if (tab.title === activeTab) { orderTabs.activeIndex = index; } }); // 将光标移动到对应的输入框中 const input = document.getElementById(`${activeTab}Input`); input.focus(); ``` 这样,在其他页面中传入需要显示的订单参数时,订单页面就可以根据参数值自动激活对应的tab,并将光标聚焦在对应的输入框中,实现了在其他页面传参光标对应的效果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值