当前知识库站点已不再维护。请移步新版知识库:https://help.rongcloud.cn/

自定义长按item弹出菜单

自定义会话界面上下文菜单, Imkit 4.x/5.x通用.
发布时间: 2018-10-17 15:24

回答:

首先需要定义action

 clickAction = new MessageItemLongClickAction.Builder()

          .title(getResources().getString(R.string.title_string))

          .priority(0)

          .actionListener(new MessageItemLongClickAction.MessageItemLongClickListener() {

              @Override

              public boolean onMessageItemLongClick(Context context, UIMessage message) {

                  ...

                  return true;

               }

           }).build();

需要说明 :

  1. onMessageItemLongClick的返回值遵循Android默认规则 true表示消费掉事件 false表示事件继续传递如果时间继续传递将会传递到对应消息类型的provider中

  2. builder中除可设置标题及回调外还可设置优先级(priority)优先级越高排序时拍得越靠前

  3. builder中还可定义showFilter用于根据不同消息类型确定action是否可见

定义完action后需要通过RongMessageItemLongClickActionManager.getInstance().addMessageItemLongClickAction(4.X)

MessageItemLongClickActionManager.getInstance().addMessageItemLongClickAction(5.X)

将action添加到manager中

需要移除时removeMessageItemLongClickAction

由于action保存在一个ArrayList中移除时需要确保参数action和ArrayList中的action是同一个对象否则可能会移除失败