Contextual ActionBar不与工具栏集成,就像ActionBar一样。它将显示在工具栏上方。这可以通过放置
来解决`<item `name="windowActionModeOverlay">true</item>`
inside styles.xml
问题在于,虽然CAB现在覆盖了工具栏,但这就是它的全部功能。这意味着,在动作模式下,我仍然可以与工具栏进行交互。
我在下面列出了问题的图片。在这里,您可以看到当我按下微调器位于工具栏上的区域时,工具栏上找到的微调器仍会出现。
有没有办法解决这个问题?
答案 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" />