4

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

When a selection occurs I start the actionMode, which is styled to be above the toolbar.

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

4

2 回答 2

2

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

编辑

你也可以尝试重写actionMode'sonActionItemClicked方法返回true

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

于 2015-04-02T10:02:45.990 回答
2

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

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

我希望它有所帮助。

于 2015-04-08T07:43:32.643 回答