2

当设备屏幕足够大时,我想将我的一些应用程序活动显示为白色“弹出窗口”。所以我用以下方式设计这些活动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

4

3 回答 3

1

看起来你只需要复制 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 主题中,您将错过这些内容。

这应该可以,但我没有任何设置来测试它。

于 2013-09-12T16:54:16.117 回答
1

这个问题现在真的很老了,但我想我有一个更干净的方法来处理这个问题:

<style name="fullScreenDialogTheme" parent="Base.Theme.AppCompat.Light.DialogWhenLarge">
    <item name="actionBarTheme">@style/ThemeOverlay.AppCompat.Dark.ActionBar</item>
</style>
于 2015-12-02T19:23:44.327 回答
0

我意识到这是一个老问题,但是在为现有应用程序添加平板电脑支持时遇到了同样的问题。我还尝试使用 DialogWhenLarge 主题为某些活动自定义 actionBar。该应用程序是使用版本 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'
}

这也导致了其他更改,例如添加用于导航到操作栏的后退箭头,并且按钮文本也变成了全大写,但这是另一回事。

于 2015-04-21T12:08:32.940 回答