#星光计划2.0# HarmonyOS 项目实战之新闻头条(ArkUI-TS) 原创
作者:梁青松
【本文正在参与51CTO HarmonyOS技术社区创作者激励计划-星光计划2.0】
简介
本来计划要做一个本地数据库存储相关的项目,但是官方的小伙伴给我说,ArkUI数据库
目前不支持最新的模拟器。所以只能另想其他的,想了大概一周,期间也在调研技术能否实现,最终定了这个项目,真正的敲代码开发大概就用了一天,最难的就是想法和界面设计。
不得不感慨新框架真的方便、真的好用!期待下个版本能完善组件和API
的细节。也希望鸿蒙越来越好。。。。。
界面搭建基于ArkUI
中TS扩展的声明式开发范式,关于语法和概念直接看官网官方文档地址:
基于TS扩展的声明式开发范式1、基于TS扩展的声明式开发范式2
项目说明
使用系统自带的网络请求框架,根据Tab的类型切换请求对应的数据。列表支持下拉刷新、上拉加载更多。模拟登录效果,根据输入框来确定按钮是否启用,登录成功后,显示登录头像和用户信息。
- 数据请求:聚合免费API-新闻头条
- 网络请求:1-官方文档、2-ArkUI开发基础:网络请求
- 列表刷新:ArkUI(TS)声明式开发:列表下拉刷新、上拉加载更多
ArKUI系列文章
《HarmonyOS ArkUI之自定义组件侧滑菜单(JS)》
《HarmonyOS ArkUI之聊天列表滑动删除(TS)》
《HarmonyOS 项目实战之新闻头条(ArkUI-TS)》
效果演示
在远程模拟器录制的,效果不佳 ~
![]() |
![]() |
---|
功能解析
1 首页
首页从上至下分为三个部分:
-
标题栏
-
Tab标签
-
数据列表
1.1 标题栏
布局很简单,使用Row布局包裹:Image
和 Swiper
(搜索框中文字上下切换)
(部分代码)
1.2 Tab标签
这个也比较简单,根据屏幕宽度、tab标签的总数量,就能得出tabItem的宽度。底部设置的指示器,点击tab根据 index(当前索引) * itemWithd(每个tab的宽度)设置属性动画,切换效果就可以了。
1.3 数据列表
根据数据的不同,展示的item的布局样式也不同,分为两种情况:单张图片和多张图片,下拉刷新和加载更多功能看我之前的写的帖子。
(部分代码)
2 侧边栏
侧边栏没有加入手势控制,只是简单的点击头像动画打开、点击阴影部分动画关闭,默认关闭状态
从以下代码看下,只需要设置值,设置属性动画之后,侧边栏动画效果就出来了,也是很方便的。
3 登录
登录也比较简单,只不过目前官网没有输入框的文档资料,这个输入框还是我从Codelabs:流式布局(eTS) 上面看到的。根据输入框是否有内容判断按钮的启用状态。
![]() |
![]() |
---|
虽然粘贴到编辑器中代码提示有错,但是可以正常运行和预览。密码框的类型还是我猜的!哈哈,就猜对了。
4 保存登录状态
根据官网资料:轻量级存储、官网示例还是有问题,我是问了华为的小伙伴,他给我说这个路径需要在/data/data/,但是目前模拟器对这块功能还兼容的不完善,不能持久化,如果把程序后台杀死,数据就没了
总结
每天进步一点点、需要付出努力亿点点。
项目地址
https://gitee.com/liangdidi/NewsDemo.git(需要登录才能看到演示图)
更多原创内容请关注:开鸿 HarmonyOS 学院
入门到精通、技巧到案例,系统化分享HarmonyOS开发技术,欢迎投稿和订阅,让我们一起携手前行共建鸿蒙生态。
一整套的ArkUI学习
楼主,ets的后端逻辑是直接在ets中编写的吗,还是通过调用PA实现逻辑交互