I was following official developer's guide to overlay actionbar.
my style.xml
is as following:
<!-- Base application theme. -->
<style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
</style>
<style name="AppTheme" parent="AppBaseTheme">
<item name="actionBarStyle">@style/CustomActionBarTheme</item>
</style>
<style name="CustomActionBarTheme"
parent="@android:style/Theme.Holo">
<item name="android:windowActionBarOverlay">true</item>
</style>
My midSdkVersion is 14 and expected output is similar to that on official guide:.
instead, in my case the output is:
(I have set background color to activity...but it isn't overlaying action bar.)
Please help me if anything I'm doing is wrong.
I wanted similar action bar like this in airnb and many other apps. Can anyone give me complete answer for this?
I see some misunderstandings in your code:
windowActionBarOverlay
should be specified on your theme not on your ActionBar
's style.Holo
with a support theme. This just breaks your supportability.Try this:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:actionBarStyle">@style/MyActionBar</item>
<item name="android:windowActionBarOverlay">true</item>
<!--For compatibility-->
<item name="actionBarStyle">@style/MyActionBar</item>
<item name="windowActionBarOverlay">true</item>
</style>
<color name="transparent_black">#80000000</color>
<style name="MyActionBar" parent="Widget.AppCompat.ActionBar.Solid">
<item name="android:background">@color/transparent_black</item>
<!--For compatibility-->
<item name="background">@color/transparent_black</item>
</style>
i think you miss this point of developer guide
Enable Overlay Mode
For Android 3.0 and higher only
style.xml
<resources>
<!-- the theme applied to the application or activity -->
<style name="CustomActionBarTheme"
parent="@android:style/Theme.Holo">
<item name="android:windowActionBarOverlay">true</item>
</style>
</resources>
For Android 2.1 and higher
<resources>
<!-- the theme applied to the application or activity -->
<style name="CustomActionBarTheme"
parent="@android:style/Theme.AppCompat">
<item name="android:windowActionBarOverlay">true</item>
<!-- Support library compatibility -->
<item name="windowActionBarOverlay">true</item>
</style>
</resources>
Specify Layout Top-margin
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="?android:attr/actionBarSize">
...
</RelativeLayout>
and I have two example links Please have a Look on them for more clarification.
Android Tutorial: Overlay with User Instructions
Pushing the ActionBar to the Next Level
Try this instead:
<style name="AppBaseTheme" parent="android:style/Theme.Holo.Light.DarkActionBar">
</style>
<style name="OverlayActionBarTheme" parent="AppBaseTheme">
<item name="android:windowActionBarOverlay">true</item>
<item name="android:actionBarStyle">@style/Holo.ActionBar.Overlay</item>
</style>
<style
name="Holo.ActionBar.Overlay"
parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
<item name="android:background">#80000000</item>
</style>
After searching for two hours I feel obliedged to add this answer here.
What did the trick for me was to add all 6 of the following lines to styles.xml
:
<item name="android:windowActionModeOverlay">true</item>
<item name="android:windowActionBarOverlay">true</item>
<item name="android:windowActionBar">true</item>
<item name="windowActionModeOverlay">true</item>
<item name="windowActionBarOverlay">true</item>
<item name="windowActionBar">true</item>
As far as I understand all those lines do the same thing, but different API levels only listen for certain lines. I should mention that I use minimum API level 19.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With