工具栏仍然可以在上下文操作栏中进行交互。

3

上下文操作栏(Contextual ActionBar)与工具栏(Toolbar)不像之前与操作栏(ActionBar)那样集成在一起,它将出现在工具栏的上方。可以通过将其放置

来解决这个问题。
`<item `name="windowActionModeOverlay">true</item>` 

在styles.xml文件内
问题在于,尽管现在CAB覆盖了工具栏,但这只是表面现象。这意味着,当处于操作模式时,我仍然可以与工具栏进行交互。
我在下面附上了一个问题的图片。你可以看到,在我按下位于工具栏上的旋转器所在位置的区域时,工具栏上的旋转器仍会弹出。
有没有办法解决这个问题?

你是通过 setSupportActionBar() 还是 setActionBar()ToolBar 设置为 ActionBar - Emmanuel
支持AB。这是我的代码:Toolbar toolbar =(Toolbar)findViewById(R.id.app_bar); setSupportActionBar(toolbar); - HaloMediaz
@HaloMediaz,你能帮我检查一下我的答案吗? - msevgi
请将您的解决方案作为答案发布,而不是作为问题的编辑。 - Chris Stratton
@ Chris Stratton 已完成! :) - HaloMediaz
1
嘿,你。我把它恢复了 :) 非常感谢你的帮助 :) - HaloMediaz
2个回答

1

解决方案

当创建ActionMode时,隐藏工具栏。不要设置View.GONE,否则将会移除工具栏的空间。取而代之地使用View.INVISIBLE。这将保留工具栏的空间。

@Override
    public boolean onCreateActionMode(ActionMode actionMode, Menu menu) {
        getActivity().getMenuInflater().inflate(R.menu.contextual_action_bar, menu);
        toolbar.setVisibility(View.INVISIBLE);

        return true;
    }

当操作模式被销毁时,使工具栏可见。
@Override
    public void onDestroyActionMode(ActionMode mode) {
        this.mActionMode = null;
        toolbar.setVisibility(View.VISIBLE);
    }

虽然这绝对可行,但对我来说似乎更像是一种变通方法而不是真正的解决方案。 - reVerse
我同意。我尝试了我能想到的一切。这是唯一有效的方法 :) - HaloMediaz

0

你应该使用 android:dropDownVerticalOffset="60dp"

<Spinner
    android:id="@+id/toolbar_spinner"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:dropDownVerticalOffset="60dp"
    android:dropDownWidth="match_parent"
    android:spinnerMode="dropdown" />

但这并不能解决问题,因为这不会在 CAB 模式下禁用工具栏。 - HaloMediaz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接