it-swarm.com.ru

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

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

мой 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

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

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

Правка:

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

enter image description here

15
Krupal Shah

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

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

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

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

Только для 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: наложение с инструкциями пользователя

Перемещение панели действий на следующий уровень

4
Lokesh

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

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

После двухчасовых поисков я чувствую себя обязанным добавить этот ответ сюда.

Что меня устроило, так это добавление всех 6 следующих строк в 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>

Насколько я понимаю, все эти строки делают одно и то же, но разные уровни API слушают только определенные строки. Следует отметить, что я использую минимальный уровень API 19.

1
Andy Ef

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

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

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

0
Ektos974