Как получить темную панель действий для Theme.Holo.Light.DialogWhenLarge?

Я хочу отобразить некоторые из моих действий приложения в виде белых "всплывающих окон", когда экран устройства достаточно большой. Так что я стилизую эти действия с Theme.Holo.Light.DialogWhenLarge:

<style name="PopupActivity" parent="@android:style/Theme.Holo.Light.DialogWhenLarge"></style>

Но таким образом я получаю светлые (белые) панели действий (когда активность не отображается как диалог) из-за темы Holo Light. Я знаю, что есть Theme.Holo.Light.DarkActionBar тема, чтобы получить белое содержимое и темную полосу, но я не могу использовать ее из-за Theme.Holo.Light.DialogWhenLarge очевидно. Поэтому я попытался изменить свой стиль на:

<style name="PopupActivity" parent="@android:style/Theme.Holo.Light.DialogWhenLarge">
    <item name="android:actionBarStyle">@android:style/Widget.Holo.ActionBar</item>
</style>

Но без результатов. Как я могу иметь Theme.Holo.Light.DialogWhenLarge тематическая активность, но с темной панелью действий?

3 ответа

Решение

Похоже, вам просто нужно сделать копию DialogWhenLarge

в ценностях / темах:

<style name="PopupActivity" parent="@android:style/Theme.Holo.Light.DarkActionBar">
</style>

в значениях-больших / темах:

<style name="PopupActivity"
        parent="@android:style/Theme.Holo.Light.DialogWhenLarge">
</style>

обратите внимание, что вы также можете использовать Theme.Holo.Light.Dialog.MinWidth как родитель для вашей большой версии, но если бы что-то было добавлено в тему DialogWhenLarge, вы бы пропустили их.

это должно работать, но у меня нет ничего настроенного, чтобы проверить это.

Вопрос сейчас действительно очень старый, но я думаю, что у меня есть более чистый способ справиться с этим:

<style name="fullScreenDialogTheme" parent="Base.Theme.AppCompat.Light.DialogWhenLarge">
    <item name="actionBarTheme">@style/ThemeOverlay.AppCompat.Dark.ActionBar</item>
</style>

Я понимаю, что это старый вопрос, но я столкнулся с той же проблемой при добавлении поддержки планшета для существующего приложения. Я также попытался использовать тему DialogWhenLarge и настроить панель действий для некоторых действий. Приложение было построено с использованием 19-й версии библиотек поддержки. Обновление до версии 22 сделало работу над пользовательским стилем.

Я использую Android Studio, и файл build.gradle был изменен с

dependencies {
    compile 'com.android.support:support-v4:19.1.0'
    compile 'com.android.support:appcompat-v7:19.1.0'
}

в

dependencies {
    compile 'com.android.support:support-v4:22.0.0'
    compile 'com.android.support:appcompat-v7:22.0.0'
}

Это также вызвало другие изменения, такие как добавление стрелки назад для навигации на панель действий, а также текст кнопки стал allCaps, но это другой вопрос.

Другие вопросы по тегам