# FluentNewsHomepage
**Repository Path**: harmonyos_samples/fluent-news-homepage
## Basic Information
- **Project Name**: FluentNewsHomepage
- **Description**: 本场景解决方案主要面向于新闻类页面开发人员,指导开发者从零开始构建一个新闻类的首页面,包含地址选择、tabs和tabContent切换的动态图标和流畅动效、下拉刷新上拉加载、首页feed流等常见功能,及功能的流畅体验。
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 62
- **Forks**: 36
- **Created**: 2024-06-15
- **Last Updated**: 2025-09-11
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 体验流畅的首页信息流
### 介绍
本场景解决方案主要面向于新闻类页面开发人员,指导开发者从零开始构建一个新闻类的首页面,包含地址选择、tabs和tabContent切换的动态图标和流畅动效、下拉刷新上拉加载、首页feed流等常见功能,及功能的流畅体验。
### 效果预览
使用说明
1. 获取地理位置的权限;
2. 点击位置信息,跳转地址页,可修改当前位置信息;
3. 点击顶部页签或者滑动切换页面,页签同步切换;
4. 点击底部页签切换页面,同步切换页签,触发页签切换的动画效果;
5. 下拉刷新页面信息;
6. 上拉加载页面信息;
7. 点击右下角按钮回弹至顶部。
### 工程目录
```
├──entry/src/main/ets/
│ ├──common
│ │ └──lottie // 动画
│ ├──constants
│ │ ├──BreakpointConstants.ets // 断点常量
│ │ ├──CommonConstants.ets // 常用常量
│ │ └──HomeConstants.ets // 主页常量
│ ├──entryability
│ │ └──EntryAbility.ets // Ability的生命周期回调内容
│ ├──pages
│ │ ├──CitySearch.ets // 城市查询
│ │ └──Index.ets // 首页
│ ├──util
│ │ ├──BreakpointType.ets // 断点类型
│ │ └──ResourceUtil.ets // 路由数据
│ ├──view
│ │ ├──CityView.ets // 城市列表组件
│ │ ├──Home.ets // 主页组件
│ │ ├──HomeContent.ets // tab内容组件
│ │ ├──HomeHeader.ets // 主页头部组件
│ │ ├──NewsChannel.ets // 新闻渠道组件
│ │ ├──PullToRefreshNews.ets // 拉取刷新新闻组件
│ │ ├──SearchView.ets // 搜索组件
│ │ └──TabBar.ets // 标签栏组件
│ └──viewmodel
│ ├──CityDetailData.ets // 城市详细数据
│ ├──NewsData.ets // 新闻数据
│ ├──NewsDataSource.ets // 新闻数据源
│ ├──NewsTypeModel.ets // 新闻类型模型
│ └──NewsViewModel.ets // 新闻视图模型
└──entry/src/main/resources // 应用静态资源目录
```
### 依赖
本方案使用了三方库lottie和pulltorefresh,如出现缺少依赖的情况可通过命令下载
ohpm install @ohos/pulltorefresh
ohpm install @ohos/lottie
### 相关权限
获取定位权限:ohos.permission.APPROXIMATELY_LOCATION和ohos.permission.LOCATION。
### 约束与限制
1.本示例仅支持标准系统上运行,支持设备:华为手机。
2.HarmonyOS系统:HarmonyOS 5.0.5 Release及以上。
3.DevEco Studio版本:DevEco Studio 5.0.5 Release及以上。
4.HarmonyOS SDK版本:HarmonyOS 5.0.5 Release SDK及以上。