Наложение панели действий не работает
Я следил за официальным руководством разработчика для наложения панели действий.
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]()
(Я установил цвет фона для активности... но это не наложение панели действий.)
Пожалуйста, помогите мне, если что-то, что я делаю, неправильно.
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 вверху, при этом все кнопки и значки раздуваются