重叠操作栏不工作

我正在按照官方开发人员指南覆盖操作栏。

我的style.xml如下:

 <!-- 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> 

我的midSdkVersion是14,预期的输出与官方指南上的相似: 在这里输入图像说明

相反,在我的情况下,输出是: 在这里输入图像说明

(我已经设置背景颜色的活动…但它不叠加行动栏。)

如果我所做的事情是错误的,请帮助我。

编辑:

我想在airnb和许多其他应用程序中这样的类似的操作栏。 任何人都可以给我完整的答案吗?

在这里输入图像说明

我在你的代码中看到一些误解:

  1. 应该在你的主题上指定windowActionBarOverlay而不是在你的ActionBar风格上。
  2. 没有理由使用支持主题的Holo 。 这只是打破了你的支持能力。

尝试这个:

 <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> 

我想你错过了开发者指南的这一点

启用覆盖模式

仅适用于Android 3.0及更高版本

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> 

适用于Android 2.1及更高版本

 <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> 

指定布局顶部边距

 <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> 

我有两个例子链接请有

Android教程:用户指令覆盖

推动ActionBar到下一个级别

试试这个:

 <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> 

你只是错过了,你需要在文档中说的应用程序主题设置覆盖

  <!-- the theme applied to the application or activity --> 

如果问题没有解决,请反馈;)

我做了完全自定义的视图,所以,活动的布局将填满所有的屏幕,并把自定义的LinearLayout放在顶部,所有的button和图标充气