环信官方提供了EaseIMKit,集成了IM的页面,降低了开发工作量,官方也提供了丰富的页面定制接口,可以参考文档EaseIMKit 使用指南 [IM开发文档]
底部扩展功能,官方也提供了添加自定义功能的方法,具体实现可以参考文档,但是没有提供删除某功能的接口,所以需要自己实现。
首先看官方的页面结构图
我们要做的就是调用EaseChatExtendMenu中的clear()方法清空所有的扩展功能,然后根据需要只展示部分功能,使用IChatExtendMenu.registerMenuItem()函数,确保自己添加的组件id与环信源码中的一致,因为源码中是根据id处理点击事件的,如果不一致就需要自己处理点击事件。
可直接复制下面的代码,在页面渲染完成之后调用,如果需要隐藏功能,只需要删除
itemStrings、itemDrawables、itemIds三个数组对应位置的数据就可以
private void hideView(){
EaseChatLayout easeChatLayout = easeChatFragment.chatLayout;
//获取到菜单输入父控件
EaseChatInputMenu chatInputMenu = easeChatLayout.getChatInputMenu();
//获取到扩展区域控件
IChatExtendMenu chatExtendMenu = chatInputMenu.getChatExtendMenu();
chatExtendMenu.clear();
//标题数组
int[] itemStrings = new int[]{com.hyphenate.easeui.R.string.attach_take_pic, com.hyphenate.easeui.R.string.attach_picture, com.hyphenate.easeui.R.string.attach_location, com.hyphenate.easeui.R.string.attach_video, com.hyphenate.easeui.R.string.attach_file};
//图标数组
int[] itemDrawables = new int[]{com.hyphenate.easeui.R.drawable.ease_chat_takepic_selector, com.hyphenate.easeui.R.drawable.ease_chat_image_selector, com.hyphenate.easeui.R.drawable.ease_chat_location_selector, com.hyphenate.easeui.R.drawable.em_chat_video_selector, com.hyphenate.easeui.R.drawable.em_chat_file_selector};
//id数组
int[] itemIds = new int[]{com.hyphenate.easeui.R.id.extend_item_take_picture, com.hyphenate.easeui.R.id.extend_item_picture, com.hyphenate.easeui.R.id.extend_item_location, com.hyphenate.easeui.R.id.extend_item_video, com.hyphenate.easeui.R.id.extend_item_file};
for(int i = 0; i < itemStrings.length; ++i) {
chatExtendMenu.registerMenuItem(itemStrings[i], itemDrawables[i], itemIds[i]);
}
}