ActionMode触摸事件将传递到工具栏

时间:2015-03-05 12:17:20

标签: android android-toolbar android-actionmode

在我的活动中,我使用Toolbar(来自appcompat)使用微调器而不是标题(在xml中定义)。活动不是ActionBarActivity,因此我不将其用作supportActionBar

当选择发生时,我启动actionMode,它被设置为工具栏上方。

但是,单击actionMode的标题将打开基础微调器的下拉菜单。如何“捕获”actionMode标题上的触摸事件以阻止它们传递到工具栏?

2 个答案:

答案 0 :(得分:2)

一个简单的解决方案是在打开actionMode时放置yourspinner.setClickable(false);,在关闭时放置yourspinner.setClickable(true);

修改

您还可以尝试覆盖actionMode的{​​{1}}方法以返回onActionItemClicked

https://developer.android.com/reference/android/support/v7/view/ActionMode.Callback.html#onActionItemClicked(android.support.v7.view.ActionMode,android.view.MenuItem)

答案 1 :(得分:2)

您可以尝试重载工具栏的onTouchEvent。如果您的actionMode为true,则将发送true,并且touchEvent链将停止。

mToolbar.setOnTouchListener(new View.OnTouchListener()
{
    @Override
    public boolean onTouch(View v, MotionEvent event)
    {
         return actionMode;
    }
 });

我希望它有所帮助。