Наложение панели действий не работает

Я следил за официальным руководством разработчика для наложения панели действий.

my 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, и ожидаемый результат аналогичен результату в официальном руководстве: enter image description here.

в моем случае вывод: enter image description here

(Я установил цвет фона для активности... но это не наложение панели действий.)

Пожалуйста, помогите мне, если что-то, что я делаю, неправильно.

EDIT:

Мне нужен подобный бар действий, как это в airnb и многих других приложениях. Может ли кто-нибудь дать мне полный ответ для этого?

enter image description here

Ответы

Ответ 1

Я вижу некоторые недоразумения в вашем коде:

  • windowActionBarOverlay должен быть указан по вашей теме не в стиле ActionBar.
  • Нет причин использовать 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>

Ответ 2

Я думаю, вы пропустите эту точку руководство разработчика

Включить режим наложения

Только для 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 на следующий уровень

Ответ 3

Попробуйте это вместо:

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

Ответ 4

Вы просто пропустили, что вам нужно настроить наложение в теме приложения, как указано в documention

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

Пожалуйста, ответьте, если проблема не решена с помощью этого;)

Ответ 5

У меня есть полностью пользовательские представления, поэтому макет действий заполняет весь экран и помещает пользовательский LinearLayout вверху, при этом все кнопки и значки раздуваются