You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

44 lines
2.0 KiB

2 years ago
# 定制联系人选择器
在创建群、邀请群成员、消息转发等场景经常需要使用到联系人选择器,联系人选择器中的默认的联系人是你的好友。启动联系人选择器时可以传入可选参数 `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,与搜索位置相同|