`
龙儿筝
  • 浏览: 667 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

鸿蒙适配一多搭建首页框架

阅读更多

认识一多

随着终端设备形态日益多样化,分布式技术逐渐打破单一硬件边界,一个应用或服务,可以在不同的硬件设备之间随意调用、互助共享,让用户享受无缝的全场景体验。而作为应用开发者,广泛的设备类型也能为应用带来广大的潜在用户群体。但是如果一个应用需要在多个设备上提供同样的内容,则需要适配不同的屏幕尺寸和硬件,开发成本较高。HarmonyOS系统面向多终端提供了“一次开发,多端部署”(后文中简称为“一多”)的能力,让开发者可以基于一种设计,高效构建多端可运行的应用。
img

“一多”建议从最初的设计阶段开始就拉通多设备综合考虑。考虑实际智能终端设备种类繁多,设计师无法针对每种具体设备各自出一份UX设计图。“一多”建议从设备屏幕宽度的维度,将设备划分为六大类。设计师只需要针对这六大类设备做设计,而无需关心具体的设备形态。

设备类型 断点名称
超小设备 xs
小设备 sm
中设备 md
大设备 lg
特大设备 xl
超大设备 xxl

GridRow和Tab实现首页适配一多

首页我们一般使用Tab来布局,包含4到6个子页面,在中小屏手机上选项卡在底部,Tab使用上下排版,例如手机,折叠屏和竖向平板等等,但像横向平板和2in1设备采用上下排版就不合适了,推荐采用左右排版。Tab的vertical属性可以设置Tab是上下排版还是左右排版。

现在我们只需要判断出设备是中小屏还是大屏设备,系统给我们提供了GridRow栅格组件,我们在栅格组件的onBreakpointChange中可以获取到当前设备属于哪一种。具体实现如下

@ComponentV2
export struct HomePage {
  @Local breakPoint: string = 'unknown'
  @Local selectIndex: number = 0
  readonly items: TabItemBean[] = [
    { name: '推荐', icon: $r('sys.symbol.house') },
    { name: '体系', icon: $r('sys.symbol.puzzle') },
    { name: '导航', icon: $r('sys.symbol.paperplane') },
    { name: '项目', icon: $r('sys.symbol.square_grid_2x2') },
    { name: '我的', icon: $r('sys.symbol.person') }
  ]

  @Computed
  get isLg(): boolean {
    return this.breakPoint === 'lg'
  }

  @Builder
  tabItemBuilder(item: TabItemBean, index: number) {
    Column() {
      SymbolGlyph(item.icon)
        .fontSize(24)
        .fontColor([this.selectIndex === index ? $r('app.color.brand_color') : $r('app.color.dialog_content')])
      Text(item.name)
        .fontSize(14)
        .fontColor(this.selectIndex === index ? $r('app.color.brand_color') : $r('app.color.dialog_content'))
    }.onClick(() => {
      this.selectIndex = index
    })
  }

  build() {
    GridRow({
      columns: 1,
      breakpoints: { reference: BreakpointsReference.WindowSize }
    }) {
      GridCol() {
        Tabs({ index: $$this.selectIndex }) {
          Repeat<TabItemBean>(this.items).each((data: Readonly<RepeatItem<TabItemBean>>) => {
            TabContent() {
              Text(data.item.name)
            }.tabBar(this.tabItemBuilder(data.item, data.index))
          }).key((data: Readonly<TabItemBean>) => data.name)
        }
        .vertical(this.isLg)
        .barPosition(this.isLg ? BarPosition.Start : BarPosition.End)
      }
    }.width('100%')
    .height('100%')
    .onBreakpointChange((point) => {
      this.breakPoint = point
    })
  }
}
 

在中小屏设备上,Tab选项卡在底部,选项卡采用横向排版;在大屏设备上,Tab选项卡在左边,选项卡采用竖向排版,效果如图。
img2
img3

0
0
分享到:
评论

相关推荐

    HarmonyOS开发文档_鸿蒙学堂.zip

    1. **HarmonyOS应用设计文档**:这份文档详细阐述了鸿蒙系统的应用设计原则和方法,包括UI设计规范、交互设计模式、多设备适配策略等。开发者可以学习如何为鸿蒙系统构建用户友好、高效且一致性的应用程序。 2. **...

    鸿蒙原生Arkts搭建的微信UI.zip

    【鸿蒙原生 ArkTS 搭建的微信UI】是一个专为华为鸿蒙系统(HarmonyOS)设计和开发的示例项目,它展示了如何使用 ArkTS 语言来构建与微信界面类似的用户界面。 ArkTS 是华为为 HarmonyOS 创建的一种基于 TypeScript ...

    book_鸿蒙入门HarmonyOS应用开发_书中源码.zip

    【标题】"book_鸿蒙入门HarmonyOS应用开发_书中源码.zip" 提供了对鸿蒙操作系统(HarmonyOS)应用开发的基础教程资源,其中包含了一个名为 "book_HarmonyOS_demo-main" 的子文件。这个压缩包很可能是为初学者准备的...

    HCIA-鸿蒙设备开发V1.0考试大纲.pdf

    HCIA-HarmonyOS Device Developer V1.0 是华为推出的一项认证,旨在验证候选人在鸿蒙操作系统设备开发方面的基础知识和技能。这个认证涵盖了从HarmonyOS的简介到设备移植的全面知识体系,对于想要深入理解和开发鸿蒙...

    鸿蒙移动应用开发..zip

    鸿蒙移动应用开发是华为推出的操作系统HarmonyOS(鸿蒙系统)中的一个重要领域,旨在为开发者提供一个跨设备、全场景的开发平台。鸿蒙系统以其独特的微内核设计和分布式能力,为移动应用开发带来了全新的体验。以下...

    鸿蒙学习笔记.zip

    鸿蒙系统,全称为HarmonyOS,是华为公司推出的一款面向未来、跨平台的智能操作系统。作为中国自主研发的操作系统,鸿蒙系统旨在打破传统设备之间的界限,实现万物互联。本学习笔记将深入探讨鸿蒙系统的核心特性、...

    玩安卓鸿蒙版本.zip

    华为鸿蒙系统(HarmonyOS),作为一款面向全场景的分布式操作系统,旨在打破设备间的壁垒,实现万物互联。这款系统不仅应用于智能手机,还覆盖了平板、智能电视、可穿戴设备等多种终端,构建了一个全新的智能生态。...

    harmonyos英文怎么读-JsBridge-for-HarmonyOS:鸿蒙的JsBridge

    1. **鸿蒙系统(HarmonyOS)**:HarmonyOS是由华为开发的全场景分布式操作系统,旨在打破设备间的界限,实现跨平台、多设备间的协同工作。它采用了微内核设计,具备高安全性和低延迟特性,适用于各种物联网设备和智能...

    harmonyos英文怎么读-HarmonyOS:鸿蒙研究

    HarmonyOS,中文名为“鸿蒙”,是由华为公司开发的一款面向全场景的分布式操作系统,旨在打破设备间的界限,实现跨平台、跨设备的无缝协同体验。HarmonyOS的英文读音可以按照音标发音为 /ˈhɑːrəˌməʊnɪos/,...

    鸿蒙内核Liteos-a开发手册.zip

    鸿蒙操作系统(HarmonyOS)是华为推出的面向全场景的分布式操作系统,旨在打破设备之间的界限,实现跨平台、跨设备的无缝协同体验。而LiteOS 作为鸿蒙内核的一部分,主要服务于物联网设备,尤其是对性能和功耗有严格...

    收录来源于网上鸿蒙系统开发的相关资料.zip

    华为鸿蒙操作系统(HarmonyOS),简称鸿蒙,是华为公司推出的一款面向全场景的分布式操作系统,旨在打破设备间的壁垒,实现万物互联。这款操作系统以其创新的微内核设计、全场景智慧连接能力以及跨平台兼容性,在IT...

    harmonyos英文怎么读-harmonyos-demo:和声演示

    HarmonyOS,中文名为“鸿蒙”,是由华为公司开发的一款面向未来、全场景的分布式操作系统,旨在为各种智能设备提供统一的操作平台。HarmonyOS的核心设计理念是实现设备间的无缝协同,打破传统操作系统的界限,构建一...

    HCIP-HarmonyOSDeviceDeveloperV1.0ʵ.rar

    这个课程涵盖了HarmonyOS的核心概念、开发工具、应用程序框架以及设备开发流程,帮助学员掌握在不同硬件平台上构建HarmonyOS应用的技能。 实验手册.pdf 提供了实际操作练习,帮助学习者将理论知识转化为实践。它...

    DevEcoDeviceTool工具包.zip

    DevEcoDeviceTool工具包是华为为开发者提供的一款专业级的鸿蒙OS(HarmonyOS)开发工具,它集成了多种功能,旨在帮助开发者高效、便捷地进行鸿蒙应用的开发、调试和部署。该工具包是鸿蒙生态系统的重要组成部分,为...

    HCIP-HarmonyOSDeviceDeveloperV1.0考.pdf

    1. **HDF 驱动框架**:HarmonyOS采用了模块化的驱动架构——HDF(HarmonyOS Driver Framework),考生需要了解HDF的设计理念及其工作原理,包括驱动模型、接口定义等。 2. **HDF 驱动开发**:这部分重点在于HDF驱动...

    Huawei_LiteOS在STM32系列处理器上的移植-Huawei_LiteOS_workshop.rar

    华为LiteOS是一款轻量级的操作系统,专为物联网设备设计,具有低功耗、高性能、易开发等特点。STM32系列处理器则是基于ARM Cortex-M内核的微控制器,广泛应用于各种嵌入式系统中。本教程将详细讲解如何将Huawei Lite...

Global site tag (gtag.js) - Google Analytics