基于 Flutter × Harmony6.0 的智慧医疗页面开发实践:预约就诊卡片 UI 构建解析

前言

随着 HarmonyOS NEXT 与 Harmony6.0 生态逐渐成熟,越来越多开发者开始关注 Flutter 在鸿蒙平台中的跨端适配能力。相比传统 Android/iOS 双端开发,Flutter 的统一渲染机制在 Harmony6.0 上能够更快实现界面迁移与业务复用,对于后台管理系统、校园服务、智慧医疗、物联网终端等场景都具有较高开发效率。
在这里插入图片描述
这次我尝试基于 Flutter 构建一个“智慧医疗预约页面”中的核心卡片组件,通过一个“下一次就诊”模块,完成 Harmony6.0 风格化医疗 UI 的设计实践。整个页面重点不在复杂业务,而是在于如何通过 Flutter 快速构建具有鸿蒙视觉特征的高质感卡片组件,同时兼顾信息层级、状态表达与移动端交互体验。


背景

医疗类应用相比普通信息流应用,更强调“状态可视化”和“信息优先级”。

用户打开页面后,最关注的信息通常只有几个:

  • 下一次什么时候就诊
  • 当前是否需要签到
  • 医生与科室信息
  • 诊室位置
  • 排队状态
  • 缴费情况

因此页面设计不能过于复杂,而是需要通过卡片化布局快速聚焦核心信息。

Harmony6.0 在设计语言上本身强调:

  • 大圆角
  • 高留白
  • 强层级
  • 柔和色彩
  • 卡片式交互
  • 原子化组件

Flutter 则非常适合实现这种 UI 风格,因为其本质上就是基于 Widget 的组合式开发。通过合理拆分组件,可以快速构建出适配鸿蒙风格的页面结构。

本次实现的“预约卡片”实际上也是整个医疗首页中的视觉核心区域。


Flutter × Harmony6.0 跨端开发介绍

Flutter 在 Harmony6.0 中最大的优势之一,是其“统一渲染”的特性。

传统跨平台方案大量依赖原生控件,而 Flutter 使用 Skia 渲染引擎,界面几乎完全由自身绘制,因此在鸿蒙平台中可以保持较高的一致性。

整个页面开发过程里,Flutter 更像是在搭建:

  • 布局树
  • 视觉树
  • 状态树

而不是传统 XML 页面。

例如在 Harmony6.0 风格开发中,常见特征包括:

  • 超大圆角
  • 半透明胶囊标签
  • 高亮状态文字
  • 柔和主题色
  • 大标题设计
  • 卡片式模块
    在这里插入图片描述

Flutter 的:

  • Container
  • BoxDecoration
  • Column
  • Row
  • TextTheme

都能够快速完成这些 UI 结构。

尤其在医疗系统中,Flutter 的组件复用能力会非常明显。

例如:

  • 挂号状态标签
  • 排队信息
  • 门诊信息
  • 支付状态
  • 医生卡片

本质上都属于“数据 + UI壳”的重复结构。

因此拆分组件会比传统页面开发更重要。


开发核心代码

整个页面最核心的是 _buildAppointmentCard 组件。

这个组件本质上是一个“医疗预约信息容器”,内部采用纵向信息布局,再通过多个横向 Row 实现状态分层。

首先最外层采用 Container 构建卡片主体:

Widget _buildAppointmentCard(ThemeData theme) {
  return Container(
    padding: const EdgeInsets.all(18),
    decoration: BoxDecoration(
      color: _teal,
      borderRadius: BorderRadius.circular(30),
    ),

这里有两个非常关键的 Harmony6.0 风格设计:

第一是 padding: 18

鸿蒙页面相比传统 Android 更强调“呼吸感”,因此组件内部留白通常更大。

第二是:

borderRadius: BorderRadius.circular(30)

30 的超大圆角会让整个组件更接近 HarmonyOS 的卡片设计语言。

同时卡片背景使用 _teal 作为医疗主题色。
在这里插入图片描述

医疗类应用通常适合:

  • 蓝绿色
  • 青绿色
  • 浅蓝色

因为这些颜色天然具备“安全感”和“科技感”。


接下来页面进入卡片头部区域:

Row(
  children: [
    const Icon(Icons.event_available, color: Colors.white),
    const SizedBox(width: 8),

这里采用:

  • Icon
  • Text
  • Spacer

形成经典的“左标题 + 右状态”结构。

其中:

Icons.event_available

能够快速传达“预约/日程”语义。

而:

Spacer()

则用于自动撑开布局,让“待签到”自动靠右。

这是 Flutter 中非常高频的布局技巧。

相比传统 absolute 定位,这种方式更适合响应式布局。


标题部分:

Text(
  '下一次就诊',
  style: theme.textTheme.titleMedium?.copyWith(
    color: Colors.white,
    fontWeight: FontWeight.w900,
  ),
),

这里有一个非常典型的 Flutter 主题化设计思路:

通过:

theme.textTheme

继承全局字体体系。

这样页面整体视觉会更加统一。

而:

fontWeight: FontWeight.w900

则用于增强医疗首页中的“重点信息感”。

因为医疗系统的信息密度通常较高,如果标题不够粗,很容易视觉失焦。


右侧状态:

Text(
  '待签到',

实际上属于“状态标签”。

这里没有额外使用背景块,而是通过透明度控制:

Colors.white.withValues(alpha: 0.82)

实现一种“弱强调”。

这样不会抢占主要就诊信息的视觉焦点。


随后进入核心信息区域:

Text(
  '心血管内科 · 周主任',

这里是整个卡片视觉权重最高的内容。

因此使用:

headlineSmall

作为主标题。

医疗场景中:

  • 科室
  • 医生
  • 当前流程

通常属于一级信息。

所以字体必须更大、更粗。

而下方:

'5月12日 09:30 · 门诊楼 3F 302诊室'

则属于二级信息。

这里通过:

bodyMedium

降低视觉优先级。

同时使用透明白色:

color: Colors.white.withValues(alpha: 0.86)

让信息层次更加明显。


最后是底部胶囊状态区域:

_buildVisitPill(Icons.confirmation_number_outlined, '排队号 A018')

这里实际上是一个高度可复用的原子组件。

组件内部:

Container(
  padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 7),

采用“横向胶囊”布局。

而:

borderRadius: BorderRadius.circular(999)

则是典型的全圆角标签实现方式。

Harmony6.0 中大量状态标签都采用这种设计。

例如:

  • AI标签
  • 状态徽章
  • 服务状态
  • 设备状态
  • 医疗状态

都适合这种 UI。


在这里插入图片描述

组件内部结构:

Row(
  children: [
    Icon(icon, color: Colors.white, size: 15),
    const SizedBox(width: 5),
    Text(text)
  ],
)

这种 Icon + Text 的模式本质上属于:

“信息符号化”。

相比纯文字:

  • 用户识别速度更快
  • 页面更具移动端感
  • 视觉密度更低

这也是现代 Harmony 风格页面大量使用图标的原因。


心得

这类 Harmony6.0 风格页面开发过程中,我最大的感受其实是:

Flutter 非常适合做“鸿蒙化 UI”。

因为 HarmonyOS 的视觉语言本身就偏向:

  • 卡片化
  • 模块化
  • 原子化
  • 圆角化

而 Flutter 又恰好是高度组件化框架。

两者在设计理念上其实非常接近。

尤其是在医疗系统中,大量页面其实都是:

  • 信息卡片
  • 状态卡片
  • 数据卡片
  • 用户卡片

Flutter 能够通过 Widget 拆分快速实现高复用。

后续如果继续扩展这个页面,还可以继续增加:

  • AI 导诊
  • 检查报告
  • 智能分诊
  • 候诊进度
  • 在线问诊
  • 健康趋势图

整个系统会非常适合 Harmony6.0 的分布式与原子化设计思路。


总结

这次基于 Flutter × Harmony6.0 的智慧医疗页面实践,本质上并不是单纯写一个 UI,而是在探索 Flutter 如何更自然地融入 HarmonyOS 的设计体系。通过卡片化布局、大圆角设计、状态胶囊组件以及主题化字体体系,可以快速构建具有鸿蒙风格特征的移动端页面。Flutter 的组件化能力也让整个开发过程更加高效,尤其适合智慧校园、智慧医疗、智慧社区等大量信息聚合型应用场景。随着 Harmony6.0 生态持续完善,Flutter 在鸿蒙跨端开发中的价值也会越来越明显。

Logo

一站式 AI 云服务平台

更多推荐