集成会话列表界面

更新时间: 2024/05/29 16:05:13

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

此文档是否对你有帮助?
有帮助
去反馈
  • 效果展示
  • 前提条件
  • 实现方法
  • 基于Activity的会话列表集成
  • 基于Fragment的会话列表集成
  • 步骤1:创建Activity的布局文件
  • 步骤2:创建Activity
  • 步骤3:声明Activity
  • 步骤4:注册会话列表界面
  • 步骤5:实现跳转
  • 相关参考