集成通讯录界面

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

IM UIKit 提供两种通讯录界面的集成方式,即基于 Activity 和基于 Fragment。该两种集成方式都支持个性化定制 UI 界面。

效果展示

通讯模块主要界面.png

前提条件

根据本文操作前,请确保您已经实现了 登录 功能。

实现方法

集成方式 说明
基于 Activity 使用 IM UIKit 提供的默认通讯录界面。界面支持一个标题栏和一个通讯录。在 IM UIKit 内部已经为该界面定义了跳转路径:其他界面需要跳转到通讯录界面时,将跳转到默认的通讯录 Activity。
基于 Fragment 在应用 Activity 中集成 IM UIKit 提供的通讯录 Fragment。您需要将自定义通讯录 Activity 注册到 IMUIKit 的路由 XKitRouter 中,从而将默认的通讯录 Activity 替换为自定义通讯录 Activity。

方式一:基于 Activity 集成

IM UIKit 提供默认通讯录 Activity 的类名为 ContactActivity

您可以使用 IM UIKit 提供的路由 XKitRouter 跳转到默认通讯录界面 ContactActivity

  • XKitRouter 原型
    JavaXKitRouter.withKey(RouterConstant.PATH_CONTACT_PAGE).withContext(context).navigate();
    
  • XKitRouter 参数说明
    参数
    类型
    说明
    RouterConstant.PATH_CONTACT_PAGE String IM UIKit 默认注册的通讯录界面地址
    context Context Activity 上下文

方式二:基于 Fragment 集成

IM UIKit 提供通讯录 Fragment 的类名为 ContactFragment。您可以在应用的 Activity 中集成 ContactFragment 从而构建您的通讯录界面。

本节假设您的应用的 Acitiviy 为 MyContactActivity,进行相应说明。

步骤 1:创建 Activity 的布局文件

创建您的应用 Activity 的布局文件 my_contact_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/contact_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>

步骤 2:创建 Activity

本步骤以应用的 Acitivity 采用视图绑定(ViewBinding)模式为例进行说明。

示例代码如下:

Javapublic class MyContactActivity extends AppCompatActivity {

    private MyContactActivityBinding viewBinding;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        viewBinding = MyContactActivityBinding.inflate(LayoutInflater.from(this));
        //设置 Activity 界面布局,非 ViewBinding 采用 setContentView(R.layout.contact_activity);
        setContentView(viewBinding.getRoot());
        FragmentManager fragmentManager = getSupportFragmentManager();
        //创建 ContactFragment
        ContactFragment fragment = new ContactFragment();
        //将 ContactFragment 加载到 Activity 中
        fragmentManager
                .beginTransaction()
                .add(R.id.contact_container, fragment)
                .commit();

    }
}

步骤 3:声明 Activity

AndroidManfest.xml 中声明 Activity。

示例代码如下:

Java<activity
        android:name=".activity.MyContactActivity"
        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_CONTACT_PAGE, MyContactActivity.class);
    

步骤 5:实现跳转

使用 IM UIKit 提供的路由器 XKitRouter 进行跳转。

示例代码如下:

JavaXKitRouter.withKey(RouterConstant.PATH_CONTACT_PAGE).withContext(context).navigate();

路由器 XKitRouter 的具体使用说明,请参考 界面跳转

相关参考

如需自定义通讯录界面的 UI 样式,请参考 自定义通讯录界面 UI

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