父contextMenu被附加

时间:2019-05-12 18:21:48

标签: android contextmenu

我有这种形式的上下文菜单:

parent.setOnCreateContextMenuListener((menu, v, menuInfo) -> menu.add("action1"))
child.setOnLongClickListener(v -> true);
child.setOnClickListener(View::showContextMenu);
child.setOnCreateContextMenuListener((menu, v, menuInfo) -> menu.add("action2"));

长按父级时,将显示带有“ action1”的预期上下文菜单,但是,当单击子级按钮时,将显示上下文菜单:

  

action2

     

action1

我假设“ createContextMenu”事件已经传播到父级,因此在从子级运行menu.add("action1")之后,正在从父级运行回调menu.add("action2")

我如何最好地纠正这个问题?


我最初的想法是验证作为参数传递给侦听器的视图v等于this,即:

parent.setOnCreateContextMenuListener((menu, v, menuInfo) -> {
    if (v == parent) menu.add("action1");
});

但这不是理想的,它也会在各处重复出现。

0 个答案:

没有答案