集成会话列表界面
更新时间: 2024/07/26 13:39:23
IM UIKit 提供两种会话列表界面的集成方式,即基于 Activity 和基于 Fragment 。两种集成方式都支持个性化定制界面 UI。
会话列表界面 UI 个性化定制的的相关说明,请参见自定义会话列表界面 UI。
效果展示
前提条件
已实现登录。
实现方法
集成方式 |
说明 |
---|---|
基于 Activity | 使用 IM UIKit 提供的默认会话列表。界面支持一个标题栏和一个会话列表。在 IM UIKit 内部已经为该界面定义了跳转路径:其他界面需要跳转到会话列表时,将跳转到默认的会话列表 Activity。 |
基于 Fragment | 在应用 Activity 中集成 IM UIKit 提供的会话列表 Fragment。 注意:您需要将自定义会话列表 Activity 注册到 IM UIKit 的路由 XKitRouter 中,从而将默认的会话列表 Activity 替换为自定义会话列表 Activity 。 |
基于Activity的会话列表集成
IM UIKit 提供默认会话列表 Activity 的类名为ConversationActivity
。
您可以使用 IM UIKit 提供的路由XKitRouter
跳转到默认会话列表界面ConversationActivity
。
- XKitRouter原型
javaXKitRouter.withKey(RouterConstant.PATH_CONVERSATION_PAGE).withContext(context).navigate();
- XKitRouter参数说明
参数 | 类型 |
说明 |
---|---|---|
+
RouterConstant.PATH_CONVERSATION_PAGE |
String | IM UIKit 默认注册的会话列表界面地址 |
基于Fragment的会话列表集成
IM UIKit 提供会话列表 Fragment 的类名为ConversationFragment
。您可以在应用的 Activity 中集成ConversationFragment
从而构建您的会话列表界面。
本节假设您的应用的 Acitiviy 为MyConversationActivity
,进行相应说明。
步骤1:创建Activity的布局文件
创建您的应用 Activity 的布局文件my_conversation_activity.xml
。
示例代码如下:
java<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:ignore="MissingDefaultResource">
//用来放置Fragment
<FrameLayout
android:id="@+id/conversation_container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
步骤2:创建Activity
本步骤以应用的 Acitivity 采用视图绑定(ViewBinding)模式为例进行说明。
示例代码如下:
javapublic class MyConversationActivity extends AppCompatActivity {
private MyConversationActivityBinding viewBinding;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
viewBinding = MyConversationActivityBinding.inflate(LayoutInflater.from(this));
//设置Activity界面布局,非ViewBinding采用setContentView(R.layout.conversation_activity);
setContentView(viewBinding.getRoot());
FragmentManager fragmentManager = getSupportFragmentManager();
//创建ConversationFragment
ConversationFragment fragment = new ConversationFragment();
//将ConversationFragment加载到Activity中
fragmentManager
.beginTransaction()
.add(R.id.conversation_container, fragment)
.commit();
}
}
步骤3:声明Activity
在AndroidManfest.xml
中声明 Activity。
示例代码如下:
java<activity
android:name=".activity.MyConversationActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize">
</activity>
步骤4:注册会话列表界面
调用XKitRouter
中的会话列表注册方法registerRouter
,同时进行相应配置(参考本步骤的示例代码),将 IM UIKit 的默认会话列表界面替换为您的会话列表 Activity 界面。
- 方法原型
javaXKitRouter.registerRouter(path,activity);
- 参数说明
参数 | 类型 | 说明 |
---|---|---|
path |
String | Activity 的跳转地址 |
activity |
Class | 跳转的目标 Activity |
- 示例代码
javaXKitRouter.registerRouter(RouterConstant.PATH_CONVERSATION_PAGE, MyConversationActivity.class);
步骤5:实现跳转
使用 IM UIKit 提供的路由器XKitRouter
进行跳转。
示例代码如下:
javaXKitRouter.withKey(RouterConstant.PATH_CONVERSATION_PAGE).withContext(context).navigate();
路由器XKitRouter
的具体使用说明,请参见界面跳转。
相关参考
如需自定义会话列表界面的展示样式,参见自定义会话列表界面 UI。