【发布时间】:2015-11-17 11:34:55
【问题描述】:
我创建了一个活动并将工具栏设置为我放置在底部的操作栏。
在该活动中,我有一个包含一些数据的列表视图。
问题是,当我长按列表项时,上下文操作栏出现在顶部,而不是覆盖位于底部的工具栏。
我的活动主题
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Base application theme. -->
<style name="myActivityTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="windowActionBar">false</item>
<item name="android:windowActionModeOverlay">true</item>
</style>
我的工具栏
<android.support.v7.widget.Toolbar
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:id="@+id/toorbar"
android:background="@android:color/white"
android:layout_gravity="bottom">
</android.support.v7.widget.Toolbar>
我的活动
protected void onCreate(Bundle savedInstanceState){
ToolBar toolbar =(ToolBar) findViewById(R.id.toolbar)
setSupportActionBar(toolbar)
}
我应该怎么做才能让 CAB 覆盖我的工具栏?
编辑
这是我班级中处理长点击的onCreateActionMode 方法
private class Selector implements AbsListView.MultiChoiceModeListener{
@Override
public boolean onCreateActionMode(android.view.ActionMode mode, Menu menu) {
mode.getMenuInflater().inflate(R.menu.my_activity_menu,menu);
toolbar.setVisibility(View.VISIBLE);
return true;
}
【问题讨论】:
-
为什么你使用toolbar.setVisibility(View.VISIBLE)在onCreateActionMode中显示工具栏; ??
-
你需要删除那一行
-
@RajeshJadav 我只希望工具栏(现在是我的操作栏)在长按列表项时可见。然后我在采取行动时将其设置为
INVISIBLE -
其实你不需要这样做。当您使用 windowActionModeOverlay 为 true 时。结构性操作栏替换了工具栏,但您在 onCreateActionMode 中显示工具栏,这不是必需的。当您单击连接操作栏中的完成按钮时,工具栏会自动替换连接操作栏
-
@RajeshJadav 我不知道为什么这个 CAB 仍然认为我在顶部有一个操作栏!想象一下,即使删除了
toolbar.setVisibliity行。它仍然显示在我的活动顶部
标签: android android-listview android-actionbar android-toolbar