集成通讯录界面

更新时间: 2024/03/15 18:26:20

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:实现跳转
  • 相关参考