目录

多设备社区评论界面

概述

本文从当前常见的多设备应用场景中,选取社区评论应用作为典型案例,详细阐述“一多”理念在实际开发中的应用。社区评论应用的核心功能包括关注首页和热点页查看。基于这些核心功能,案例实现了关注页、热点页、社交详情、图片详情图片查看和输入评论等典型页面。文章重点介绍关键布局能力及对应实现。当前应用已适配的设备包括:直板机、双折叠(Mate X系列)、三折叠、阔折叠、平板和电脑。

阅读本文前,建议开发者先了解ArkUI(方舟UI框架)和一次开发,多端部署概览相关知识。

下文将从UX设计、工程管理、页面开发三个方面,系统介绍多设备社区评论在实际开发中的最佳实践,为开发者提供可借鉴的实现思路。

UX设计

应用的UX设计可参考社交通讯类的多设备响应式设计指南,设计参考图如下所示。

工程管理

为确保“一多”工程代码的复用性与可维护性,建议开发者采用分层架构组织代码工程。该架构将项目划分为产品定制层(products)、基础特性层(features)和公共能力层(common)三个层级,各层级权责明确且功能独立,为开发者提供了清晰、高效且可扩展的设计方案。关于分层架构的具体设计细节,可参考分层架构设计。

[h2]创建工程

建议开发者参考多设备工程部署与发布相关内容,掌握分层架构工程的创建与配置方法后,创建模板项目工程。根据多设备社区评论的开发需求进行针对性修改,确保工程架构贴合实际业务需求。

[h2]工程结构

多设备社区评论应用采用推荐的分层架构,将代码工程按products、features、common三个层级组织。各层级设计如下:

工程结构如下:

├──common
│  └──commonmulticommunityapplication                                     
│     └──src/main
│        ├──ets
│        │  ├──constants                      // 公共常量定义
│        │  ├──model                          // 公共model定义
│        │  ├──utils                          // 工具类
│        │  └──view                           // feature公共业务组件
│        └──resources                         // 公共资源
├──features                                   
│  ├──commonui                                // product公共业务组件模块
│  │  └──src/main
│  │     ├──ets
│  │     │  ├──view                           // product公共业务组件
│  │     │  └──viewmodel                      // product公共视图模型
│  │     └──resources                         // 公共业务组件模块资源
│  ├──contentcommunity                        // 内容社区模块
│  │  └──src/main
│  │     ├──ets
│  │     │  ├──model                          // 帖子数据模型
│  │     │  ├──view                           // 帖子组件
│  │     │  └──viewmodel                      // 帖子视图模型
│  │     └──resources                         // 帖子模块资源
│  └──socialcommunity                         // 社交社区模块
│     └──src/main
│        ├──ets
│        │  ├──model                          // 关注者/评论数据模型
│        │  ├──view                           // 关注者/评论组件
│        │  └──viewmodel                      // 关注者/评论视图模型
│        └──resources                         // 社交模块资源
├──product                                    
│  ├──default                                 // 手机/平板设备
│  │  └──src/main
│  │     ├──ets
│  │     │  ├──entryability                   // 入口类
│  │     │  ├──entrybackupability             // 应用数据备份恢复自定义拓展类
│  │     │  └──pages                          // 入口页面
│  │     └──resources                         // 资源文件
│  └──pc                                      // 电脑设备
│     └──src/main
│        ├──ets
│        │  ├──pages                          // 入口页面
│        │  ├──pcability                      // 入口类
│        │  └──pcbackupability                // 应用数据备份恢复自定义拓展类
│        └──resources                         // 资源文件
└──oh-package.json5                           // 工程依赖声明

移动端页面

本章介绍如何针对直板机、双折叠(Mate X系列)、三折叠、阔折叠及平板设备上的多设备社区评论,利用“一多”布局能力,实现页面层级“一套代码、多端适配”的目标。同时,阐述这些设备上的窗口适配方案。

[h2]窗口适配

[h2]关注页

社区评论应用首页作为业务入口。根据功能设计,关注页相关内容划分为4个区域,效果图如下:

横向断点

sm

md

lg

关注页

界面开发

具体介绍及实现方案如下表所示:

区域编号

简介

实现方案

1

顶部页签栏

使用堆叠容器Stack嵌套自定义组件实现。通过点击或左右滑动切换“关注”与“发现”页签的内容。

2

全部关注(顶部/侧边)

使用响应式组件List实现。

3

社交内容列表

使用响应式组件WaterFlow瀑布流容器实现。通过设置columnsTemplate布局列数,以实现在不同设备上展示不同列数。

4

底部导航栏

使用响应式组件HdsTabs (底部页签)实现。通过barFloatingStyle属性设置页签悬浮样式。

[h2]热点页

热点页用于展示当前实时热点内容。根据功能设计,热点页相关内容划分为3个区域,效果图如下:

横向断点

sm

md

lg

热点页

界面开发

具体介绍及实现方案如下表所示:

区域编号

简介

实现方案

1

顶部页签栏

使用堆叠容器Stack嵌套自定义组件实现。通过点击或左右滑动切换“实时”与“本地”页签的内容。

2

社交内容区

使用响应式组件WaterFlow瀑布流容器实现。通过设置columnsTemplate布局列数,以实现在不同设备上展示不同列数。

3

底部导航栏

使用响应式组件HdsTabs (底部页签)实现。通过barFloatingStyle属性设置页签悬浮样式。

[h2]社交详情页

社交详情页。根据功能设计,社交详情页相关内容划分为4个区域,效果图如下:

横向断点

sm

md

lg

社交详情页

界面开发

具体介绍及实现方案如下表所示:

区域编号

简介

实现方案

1

顶部标题栏

使用响应式组件NavDestination设置title属性实现。在不同的设备宽度下组件自适应占满一屏。

2

社交内容区+图片展示区

常用基础组件+使用嵌套网格容器Grid实现。通过设置columnsTemplate布局列数,以实现在不同设备上展示不同列数。

3

社交评论区

使用可滚动的容器组件Scroll实现。

4

底部互动栏

使用响应式组件HdsTabs (底部页签)实现。通过barFloatingStyle属性设置页签悬浮样式。

[h2]图片详情页

图片详情页。根据功能设计,图片详情页相关内容单独一个区域,效果图如下:

横向断点

sm

md

lg

图片详情页

界面开发

具体介绍及实现方案如下表所示:

区域编号

简介

实现方案

1

图片展示页

图片自适应并占据整个页面展示。

电脑端页面

本章介绍如何基于现有移动端界面开发方案,实现代码逻辑与布局复用,高效完成电脑设备上多设备社区的界面开发。

[h2]关注页

社区评论应用首页作为业务入口,关注页相关内容划分为4个区域,效果图如下:

界面开发

具体介绍及实现方案如下表所示:

区域编号

简介

实现方案

1

顶部页签栏

同移动端关注页对应区域的布局实现方案一致。

2

全部关注

3

社交内容列表

4

电脑设备左侧导航栏

使用侧边栏容器SideBarContainer实现。通过设置showSidebar属性,确保侧边栏固定显示。

[h2]热点页

热点页用于展示当前实时热点内容。根据功能设计,热点页相关内容划分为3个区域,效果图如下:

界面开发

具体介绍及实现方案如下表所示:

区域编号

简介

实现方案

1

顶部页签栏

同移动端热点页对应区域的布局实现方案一致。

2

社交内容区+社区评论区

3

电脑设备左侧导航栏

使用侧边栏容器SideBarContainer实现。通过设置showSidebar属性,确保侧边栏固定显示。

[h2]社交详情页

根据功能设计,社交详情页相关内容划分为5个区域,效果图如下:

界面开发

具体介绍及实现方案如下表所示:

区域编号

简介

实现方案

1

顶部标题栏

同移动端社交详情页对应区域的布局实现方案一致。

2

社交内容区+图片展示区

3

社交评论区

4

底部互动栏

5

电脑设备左侧导航栏

使用侧边栏容器SideBarContainer实现。通过设置showSidebar属性,确保侧边栏固定显示。

[h2]图片详情页

图片详情页相关内容划分为1个区域,效果图如下:

界面开发

具体介绍及实现方案如下表所示:

区域编号

简介

实现方案

1

图片展示页

同移动端图片详情页对应区域的布局实现方案一致。

示例代码