问题
I have created an activity and set toolbar as the actionbar which i have positioned at the bottom.
Inside that activity, I have a listview that contain some data.
Problem is, when I long press a list item, contextual action bar appears at the top instead of overlaying my toolbar which is positioned at the bottom.
my activity theme
<?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>
my toolbar
<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>
my activity
protected void onCreate(Bundle savedInstanceState){
ToolBar toolbar =(ToolBar) findViewById(R.id.toolbar)
setSupportActionBar(toolbar)
}
What should i do to make CAB overlay my toolbar?
EDIT
This is onCreateActionMode
method in my class that handle long clicks
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;
}
回答1:
If you want the Contextual ActionBar
overlap over Toolbar
then use this
<item name="windowActionModeOverlay">true</item>
instead of
<item name="android:windowActionModeOverlay">true</item>
回答2:
you can try this theme this may solve your problem.
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
回答3:
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/color_primary</item>
<item name="colorPrimaryDark">@color/color_primary_dark</item>
<item name="colorAccent">@color/color_accent</item>
<item name="alertDialogTheme">@style/AppCompatAlertDialogStyle</item>
<!-- required for toolbar in prelolipop -->
<item name="android:windowNoTitle">true</item>
**<item name="windowActionModeOverlay">true</item>**
</style>
use <item name="windowActionModeOverlay>true</item>
for Contextual action bar to overlay toolbar. And remove if you have used
<item name="windowActionBar">false</item>
. It worked for me.
回答4:
This worked For me,
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="windowActionModeOverlay">true</item>
</style>
回答5:
Since my toolbar was at the bottom of the activity, solution was to make my own contextual action bar that will overlay it.
This project below gave me a head start.
https://github.com/afollestad/material-cab
来源:https://stackoverflow.com/questions/33755919/contextual-action-bar-does-not-overlay-my-toolbar