集成会话列表界面

更新时间: 2024/09/27 10:50:00

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 默认注册的会话列表界面地址
    context Context Activity 上下文

方式二:基于 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:实现跳转
  • 相关参考