鸿蒙元服务项目实战:终结篇之备忘录搜索功能实现

简介: 开发元服务,有很多的限制性因素,比如包的大小限制,相关API限制,所以,我们在实际开发的时候,具体Api能否使用,还需要去官网查看一下,目前,针对当前这个小项目,总结了几个小问题,大家在开发的过程中可以作为参考。

前言


其实前边三篇文章,我们已经把要实现的功能都进行实现了,无论是列表展示,还是数据编辑,样式修改,换肤等等,已经达到了可交付的状态,当然了,目前的这个小项目也已经上架到了鸿蒙系统的应用商店,名字是随心记,大家可以边做项目边进行体验,本篇文章,会把最后一点的搜索功能实现,另外再总结一下这个小项目用到的知识点。


我们可以简单看下,目前已经完成的效果。


备忘录首页,条目颜色跟着皮肤联动。



内容编辑页面,可以设置样式和换肤。



搜索功能实现


目前,搜索功能是和列表页绑定在一起的,一是共用组件,减少页面和代码,二是,本身功能并不复杂,合并在一个页面也更加直观表达。


点击搜索框,输入内容进行搜索后,过滤出和搜索内容匹配的数据进行展示,点击搜索框右边的叉号,就还原所有的数据。


针对之前的列表数据加载,我们只需要改造一番即可,增加关键搜索词,搜索时传递,其它调用时不传,并使用filter函数进行过滤和搜索匹配的数据。


doData(keyWord?: string) {
    try {
      this.doContentEmpty()
      this.mListContentBean = []
      DataPreferences.getInstance().getAllSync().allKeys?.forEach((key) => {
        let content = DataPreferences.getInstance().getSync<string>(key)
        let bean = JSON.parse(content) as ListContentBean
        this.mListContentBean.push(bean)
        if (DataPreferences.getInstance().getAllSync().allKeys?.length == this.mListContentBean.length) {
          //排序
          this.mListContentBean.sort((a, b) => b.timeValue! - a.timeValue!)
          if (keyWord != undefined) {
            this.mListContentBean = this.mListContentBean.filter(item => item.title?.indexOf(keyWord) != -1);
          }
        }
      })
    } catch (e) {
    }
  }


UI组件


Search({ placeholder: "搜索……" })
        .margin({ left: 10, right: 10, top: 10 })
        .onSubmit((value) => {
          //搜索
          this.doData(value)
        })
        .onChange((value: string, _?: PreviewText) => {
          if (value == "") {
            //清空
            this.doData()
          }
        })


备忘录项目知识点


这个备忘录小项目包含的知识点并不算很多,可以练习到的知识点有两个方面,第一个方面,就是UI组件相关的,比如列表组件List的使用,搜索组件Search的使用,以及富文本组件RichEditor的使用,除了,这几个典型的组件之外,基础组件也有很多。


第二个方面就是功能方面,我们可以练习到用户首选项DataPreferences数据的增删改查,输入框和软键盘之间的避让,以及页面数据的保存和页面数据的回显。


相关总结


开发元服务,有很多的限制性因素,比如包的大小限制,相关API限制,所以,我们在实际开发的时候,具体Api能否使用,还需要去官网查看一下,目前,针对当前这个小项目,总结了几个小问题,大家在开发的过程中可以作为参考。


如何实现底部按钮,在软键盘弹出后,显示在软键盘上面?


答:获取软键盘的高度,根据软键盘的弹出和隐藏,动态设置需要改变的组件即可。


元服务,使用用户首选项DataPreferences进行数据存储,如何按照列表形式存储?


答:只需要设置不同的key即可,获取的时候,可以遍历所有的key,以key再获取对应的数据。


RichEditor应该如何正确回显数据?


答:在RichEditor初始化完成之后比如onReady方法中。

相关文章
|
10月前
|
API 开发者
鸿蒙NEXT上传图片功能PhotoViewPicker核心功能解析
`PhotoViewPicker` 是鸿蒙系统中用于媒体资源选择的核心组件,通过它可以便捷地实现图片、视频等媒体文件的选择功能。下面从基本用法、参数配置到高级应用进行全面解析:
294 1
|
10月前
|
前端开发 容器
32.[HarmonyOS NEXT Row案例一(上)] 使用Row组件创建水平排列的功能按钮组
HarmonyOS NEXT提供了丰富的布局组件,其中Row组件是一种常用的水平布局容器,可以将子组件按照水平方向排列。本教程将详细讲解如何使用Row组件创建一个水平排列的功能按钮组,重点介绍基础间距与对齐的设置方法。
253 4
|
11月前
|
IDE API 开发工具
鸿蒙开发:DevEcoStudio中那些实用的小功能
本篇文章就暂时给大家盘点四个,在后续的文章中,关于DevEco Studio中能够提升我们开发效率的功能,也会不间断的进行总结。
274 12
鸿蒙开发:DevEcoStudio中那些实用的小功能
|
11月前
|
定位技术 API
HarmonyOS实战:高德地图定位功能完整流程详解
本文详细介绍了在鸿蒙系统中使用高德地图实现完整定位功能的流程。首先分析需求,包括权限申请、检查GPS状态、单次或多次定位选择以及定位失败处理。接着通过代码实现具体步骤:添加定位权限、申请用户权限、检查GPS开关状态、启动定位服务,并处理定位成功或失败的情况。若定位失败,可尝试获取历史定位信息或使用默认位置。最后总结指出,虽然定位功能基础简单,但完整的流程与细节处理才是关键。建议读者动手实践,掌握高德地图定位功能的使用。
1361 15
|
11月前
HarmonyOS实战:Tab顶部滑动悬停功能实现
在鸿蒙开发中,实现Scroll嵌套List列表滑动时顶部悬停的效果是一个常见需求。本文详细介绍了如何通过布局和事件处理来实现这一功能。首先,使用Scroll嵌套List和Tab布局来构建基础页面。然后,通过设置nestedScroll属性为NestedScrollMode.PARENT_FIRST,确保外层Scroll优先滑动。接着,通过监听List和Scroll的滑动事件,处理滑动冲突,确保在特定条件下Scroll停止滑动,将滑动事件交给List处理。最终,实现了在上下滑动时优先让Scroll滑动的效果,并提供了扩展思路,如优先让List滑动等。
472 10
HarmonyOS实战:Tab顶部滑动悬停功能实现
|
11月前
|
JSON 数据格式
HarmonyOS实战: 城市选择功能的快速实现
本文详细介绍了在开发城市选择功能时,如何处理城市列表中的多音字、按字母顺序排列城市以及将首字母相同的城市分组的技术实现。首先,通过使用pinyin4js库处理多音字,确保每个城市名称的首字母正确。接着,利用Intl.Collator对城市数据进行字母排序。最后,通过遍历和条件判断,将首字母相同的城市分组,并使用ListItemGroup和sticky功能在UI中展示分组结果。文章强调了分组处理的复杂性,并鼓励读者动手实践以加深理解。
243 6
|
11月前
|
存储 安全 数据安全/隐私保护
HarmonyOS5云服务技术分享--匿名登录功能指南
本文为开发者详解如何实现应用的“游客模式”登录功能,让用户无需注册即可快速体验APP。通过5步集成指南(环境准备、初始化认证模块、智能登录检测、一键游客登录及账号升级策略),手把手教你完成开发流程。同时分享安全守则与高阶技巧,如敏感操作防护和事件监听等,帮助优化用户体验并提升留存率。文末更有小互动,期待你的观点交流!
|
11月前
|
人工智能 安全 API
HarmonyOS5云服务技术分享--登录邮件功能整理
本文详细解析了HarmonyOS认证服务中基于ArkTS API 12的邮箱登录全流程,涵盖注册、密码登录、验证码登录、敏感操作处理及密码重置等功能。通过清晰的代码示例与注意事项说明,帮助开发者快速实现安全可靠的邮箱认证流程,同时提供账号关联、风控策略等扩展建议,助力优化用户体验。适合初学者与进阶开发者参考实践。
|
移动开发 JavaScript API
HarmonyOS Next 简单上手元服务开发
本文介绍了 HarmonyOS Next 中元服务的开发流程与关键特性。元服务是一种轻量级应用程序形态,支持免安装、秒开直达,适用于听音乐、打车等场景,大幅提升服务获取效率。文章详细讲解了元服务的开发旅程,包括在 AGC 平台上新建项目、修改名称与图标、新增卡片等内容,并提供了代码示例,如 AtomicServiceTabs 的 tab 切换和标题设置、AtomicServiceNavigation 的路由管理等。此外,还探讨了 AtomicServiceWeb 的使用方法,涵盖鸿蒙页面与 h5 页面的数据传递及方法调用。
1138 20
HarmonyOS Next 简单上手元服务开发
|
开发框架 API 计算机视觉
鸿蒙元服务实战-笑笑五子棋(5)
本文介绍了鸿蒙元服务实战项目“笑笑五子棋”的最后一部分,主要包括卡片制作与发布上架流程。通过 Form Kit 框架,实现静态与动态卡片的开发,详细讲解了卡片生命周期、功能页面设计及配置文件设置。文章还展示了如何完成卡片内的五子棋逻辑,包括绘制棋盘、处理落子和胜负判断等核心功能。最后,说明了发布上架的步骤,如设置图标、配置证书及打包 Hap 文件。附有参考链接和代码仓库,方便读者深入学习。至此,“笑笑五子棋”从开发到上线全流程完毕。
295 12
鸿蒙元服务实战-笑笑五子棋(5)

热门文章

最新文章

下一篇
开通oss服务