4.9 KiB
4.9 KiB
关注页面修复说明
问题描述
首页的"关注"标签页不显示已关注主播的直播间,即使用户已经关注了正在直播的主播。
问题原因
原来的 showFollowTab() 方法实现有误:
- 显示的是推荐用户列表,而不是已关注主播的直播间
- 使用了
RecommendUserAdapter而不是房间适配器 - 没有调用接口获取已关注主播的直播间
修复方案
1. 修改 showFollowTab() 方法
文件: android-app/app/src/main/java/com/example/livestreaming/MainActivity.java
修改内容:
- 移除推荐用户相关的代码
- 使用房间列表适配器显示直播间
- 调用新的
fetchFollowedStreamersRooms()方法获取数据
2. 新增 fetchFollowedStreamersRooms() 方法
获取已关注主播的直播间列表:
private void fetchFollowedStreamersRooms() {
// 1. 检查登录状态
if (!AuthHelper.isLoggedIn(this)) {
// 显示未登录提示
return;
}
// 2. 获取所有直播间
ApiClient.getService().getRooms()
.enqueue(new Callback<ApiResponse<List<Room>>>() {
@Override
public void onResponse(...) {
// 3. 获取已关注的用户列表
ApiClient.getService().getFollowingList(1, 1000)
.enqueue(new Callback<...>() {
@Override
public void onResponse(...) {
// 4. 筛选出已关注主播的直播间
// 5. 更新UI显示
}
});
}
});
}
3. 新增空状态处理方法
showNoFollowedStreamersState():
- 显示"还没有关注主播"的提示
- 提供"去发现"按钮,跳转到发现页面
showNoLiveFollowedStreamersState():
- 显示"关注的主播都不在线"的提示
- 提供"刷新"按钮重新加载
实现逻辑
数据获取流程
1. 用户点击"关注"标签
↓
2. 检查登录状态
↓
3. 获取所有直播间列表 (GET /api/front/live/public/rooms)
↓
4. 获取已关注用户列表 (GET /api/front/follow/following)
↓
5. 筛选:room.uid in followedUserIds
↓
6. 显示筛选后的直播间列表
空状态处理
- 未登录 → 提示"请先登录" + "去登录"按钮
- 没有关注 → 提示"还没有关注主播" + "去发现"按钮
- 都不在线 → 提示"关注的主播都不在线" + "刷新"按钮
- 网络错误 → 提示"网络错误" + "重试"按钮
使用的API接口
1. 获取直播间列表
GET /api/front/live/public/rooms
2. 获取关注列表
GET /api/front/follow/following?page=1&pageSize=1000
返回数据格式:
{
"code": 200,
"data": {
"list": [
{
"uid": 1,
"nickname": "主播昵称",
"avatar": "头像URL",
...
}
],
"total": 10
}
}
测试步骤
1. 未登录状态
- 打开APP,点击"关注"标签
- 应该显示"请先登录"提示
- 点击"去登录"按钮,跳转到登录页面
2. 已登录但未关注任何人
- 登录后,点击"关注"标签
- 应该显示"还没有关注主播"提示
- 点击"去发现"按钮,跳转到发现页面
3. 已关注但主播不在线
- 关注一些主播(但他们都没有开播)
- 点击"关注"标签
- 应该显示"关注的主播都不在线"提示
- 点击"刷新"按钮重新加载
4. 已关注且主播在线
- 关注一些正在直播的主播
- 点击"关注"标签
- 应该显示这些主播的直播间列表
- 点击直播间可以进入观看
注意事项
-
性能优化:
- 关注列表使用较大的 pageSize (1000) 一次性获取
- 如果用户关注数量很多,可以考虑分页加载
-
数据刷新:
- 下拉刷新会重新获取数据
- 从其他页面返回时不会自动刷新,需要用户手动刷新
-
错误处理:
- 网络错误会显示错误提示和重试按钮
- 接口返回错误会显示相应的空状态
-
用户体验:
- 首次加载显示骨架屏
- 刷新时显示下拉刷新动画
- 空状态提供明确的操作指引
相关文件
- Android 主页面:
android-app/app/src/main/java/com/example/livestreaming/MainActivity.java - API 接口定义:
android-app/app/src/main/java/com/example/livestreaming/net/ApiService.java - 后端关注接口:
Zhibo/zhibo-h/crmeb-front/src/main/java/com/zbkj/front/controller/FollowController.java - 后端直播间接口:
Zhibo/zhibo-h/crmeb-front/src/main/java/com/zbkj/front/controller/LiveRoomController.java
后续优化建议
- 添加缓存:缓存关注列表,减少网络请求
- 实时更新:使用 WebSocket 实时更新主播上线状态
- 排序优化:优先显示正在直播的主播
- 推送通知:关注的主播开播时发送推送通知
- 快速关注:在关注页面也可以快速取消关注