集成圈组界面
更新时间: 2024/07/26 13:39:23
网易云信圈组 UIKit 提供圈组场景下各模块完整 UI,包括广场、社区-话题二级结构、公告频道、身份组等。
圈组 UIKit 提供两种界面集成方式,即基于 Activity 集成和基于 Fragment 集成。通过这两种方式集成的圈组界面,都支持个性化定制界面 UI。
本文介绍如何集成圈组各模块界面视图。
界面视图
社区-话题
页面 | 页面类 | 视图 |
---|---|---|
社区列表页面 | QChatServerFragment 展示所有社区及包含的话题列表 |
|
社区创建选择页面 | QChatCreateWayActivity 支持创建和加入社区 |
|
社区创建页面 | QChatCreateBySelfActivity 创建社区 |
|
社区搜索加入页面 | QChatJoinOtherServerActivity 支持搜索并加入社区 |
|
话题会话页面 | ChannelMessageActivity 话题会话,支持文本消息、表情、语音、图片和视频消息 |
|
社区设置页面 | QChatServerSettingActivity 支持设置社区头像、社区名称和主题 |
|
社区设置成员列表页面 | QChatServerMemberListActivity 支持查看、添加、移除社区成员 |
|
社区身份组列表页面 | QChatRoleListActivity 支持查看、添加、移除身份组 |
|
社区身份组设置页面 | QChatRoleSettingActivity 支持设置身份组权限、修改身份组名称等 |
|
社区身份组成员管理页面 | QChatRoleMemberActivity 支持添加、移除身份组中的成员 |
社区广场
页面 | 页面类 | 视图 |
---|---|---|
圈组广场 | QChatSquareFragment 展示所有公开社区 |
注意:
-
SquareDataSourceHelper
提供圈组广场的数据网络请求和结果回调方法,您可以根据自身业务逻辑修改该类实现。 -
用户未加入社区则进入游客模式,该模式下不允许发言和操作。相关页面会根据是否为游客模式进行 UI 展示和逻辑处理。游客模式判断示例代码如下:
java
// 根据提供的社区 ID(即 serverId)判断,当前登录账号是否在该社区中 if (ServerVisitorInfoMgr.getInstance().isVisitor(serverId)) { // 游客模式 } else { // 非游客模式 }
公告频道
页面 | 页面类 | 视图 |
---|---|---|
公告频道列表页面 | QChatServerFragment 展示所有公告频道服务器和包含的频道(可通过广播图标区分公告频道和社区) |
|
公告频道创建选择页面 | QChatCreateWayActivity 支持创建和加入公告频道 |
|
公告频道创建页面 | QChatCreateBySelfActivity 支持创建公告频道 |
|
公告频道搜索加入页面 | QChatJoinOtherServerActivity 支持搜索并加入公告频道 |
|
公告频道会话页面 | ChannelMessageActivity 公告频道聊天页面,支持发送文本消息、表情、图片、语音、视频以及表情评论。 |
|
公告频道设置页面 | SettingActivity (package:com.netease.yunxin.kit.qchatkit.ui.announce) 支持设置公告频道属性。创建者可以设置频道信息、解散频道、管理订阅者、管理员及其权限。 |
|
管理员管理页面 | ManagerListActivity (package:com.netease.yunxin.kit.qchatkit.ui.announce) 创建者可以添加、移除管理员。管理员仅支持查看。 |
|
管理员权限设置页面 | ManagerEditActivity (package:com.netease.yunxin.kit.qchatkit.ui.announce) 创建者可以设置管理员的操作权限。 |
|
订阅者管理页面 | ServerMemberListActivity (package:com.netease.yunxin.kit.qchatkit.ui.announce) 支持查看、添加、移除订阅者 |
前提条件
已实现登录。
实现方法
集成方式 | 说明 |
---|---|
基于 Activity | 使用圈组 UIKit 提供的默认界面。在圈组 UIKit 内部已经为该界面定义了跳转路径:其他界面需要跳转到该界面时,将跳转到对应的 Activity。 |
基于 Fragment | 在应用 Activity 中集成圈组 UIKit 提供的会话列表 Fragment。 |
基于 Activity 的圈组页面集成
对于集成 Activity 的圈组页面,圈组 UIKit 提供静态 launch
方法来进行页面跳转。示例代码如下:
java// 在一个Activity中想要跳转到社区设置页面代码如下,需要您获取到相关社区的QChatServerInfo作为入参
QChatServerSettingActivity.launch(this.getActivity(), serverInfo)
您也可以通过创建安卓原生 Intent
对象来启动页面跳转,并针对不同圈组页面对 Intent
对象传入相应的 key 和 value。具体传参方式请参考圈组 Demo 源码的 launch
方法实现。
基于 Fragment 的圈组页面集成
Fragment 需要添加到 Activity 中进行展示。
-
圈组广场
QChatSquareFragment
示例代码:java
public class MyActivity extends Activity { protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.....); QChatSquareFragment squareFragment = new QChatSquareFragment(); getSupportFragmentManager() .beginTransaction() .add(layoutID, squareFragment) .commit(); } }
-
社区/公告频道列表
QChatServerFragment
示例代码:java
public class MyActivity extends Activity { protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.....); QChatServerFragment serverFragment = new QChatServerFragment(); getSupportFragmentManager() .beginTransaction() .add(layoutID, serverFragment) .commit(); } }
此文档是否对你有帮助?