工具栏仍可与Contextual ActionBar进行交互

时间:2015-04-21 19:29:36

标签: android android-spinner android-toolbar contextual-action-bar

Contextual ActionBar不与工具栏集成,就像ActionBar一样。它将显示在工具栏上方。这可以通过放置

来解决
`<item `name="windowActionModeOverlay">true</item>` 

inside styles.xml

问题在于,虽然CAB现在覆盖了工具栏,但这就是它的全部功能。这意味着,在动作模式下,我仍然可以与工具栏进行交互。

我在下面列出了问题的图片。在这里,您可以看到当我按下微调器位于工具栏上的区域时,工具栏上找到的微调器仍会出现。

enter image description here

有没有办法解决这个问题?

2 个答案:

答案 0 :(得分: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);
    }

答案 1 :(得分: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" />