expert-app/uikit/documents/定制联系人选择器.md
2025-11-18 15:25:59 +08:00

44 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 定制联系人选择器
在创建群、邀请群成员、消息转发等场景经常需要使用到联系人选择器,联系人选择器中的默认的联系人是你的好友。启动联系人选择器时可以传入可选参数 `ContactSelectActivity.Option` 来做联系人过滤、默认选中、多选等操作。例如:
```java
ContactSelectActivity.Option option = new ContactSelectActivity.Option();
// 设置联系人选择器标题
option.title = "邀请群成员";
// 设置可见但不可操作的联系人
ArrayList<String> disableAccounts = new ArrayList<>();
disableAccounts.addAll(memberAccounts);
option.itemDisableFilter = new ContactIdFilter(disableAccounts);
// 限制最大可选人数及超限提示
int capacity = teamCapacity - memberAccounts.size();
option.maxSelectNum = capacity;
option.maxSelectedTip = getString(R.string.reach_team_member_capacity, teamCapacity);
// 打开联系人选择器
NimUIKit.startContactSelector(NormalTeamInfoActivity.this, option, REQUEST_CODE_CONTACT_SELECT);
```
可以通过 `ContactSelectActivity.Option` 来定制,目前支持:
|参数|说明|
|:---|:---|
|type|联系人选择器中数据源类型好友默认、群、群成员需要设置teamId。参考 ContactSelectType|
|teamId|联系人选择器数据源类型为群成员时,需要设置群号|
|title|联系人选择器标题|
|multi|联系人单选/多选(默认)|
|minSelectNum|至少选择人数|
|minSelectedTip|低于最少选择人数的提示|
|maxSelectNum|最大可选人数|
|maxSelectedTip|超过最大可选人数的提示|
|showContactSelectArea|是否显示已选头像区域|
|alreadySelectedAccounts|默认勾选(且可操作)的联系人项|
|itemFilter|需要过滤(不显示)的联系人项|
|itemDisableFilter|需要disable(可见但不可操作)的联系人项|
|searchVisible|是否支持搜索|
|allowSelectEmpty|允许不选任何人点击确定|
|maxSelectNumVisible|是否显示最大数目结合maxSelectNum,与搜索位置相同|