在AppCompatActivity中使用Holo主题

4

我有一个相对简单的安卓应用程序,使用支持库为运行在低于11版本API的设备提供Actionbar,因此我的主要活动扩展了AppCompatActivity

我的当前应用程序主题如下:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
</style>

经过一些测试并确保应用程序如预期工作后,我决定为运行在14及以上API级别设备上的主题设置如下:

<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
    <!-- Customize your theme here. -->
</style>

自从启动以来,该应用程序一直崩溃。
logcat显示正在抛出异常,其内容如下:

你需要使用Theme.AppCompat主题(或派生主题)与此活动。

这是否意味着我必须仅使用AppCompat主题,而不考虑设备的API?
如果不是,那么我该如何解决此问题?

1个回答

1

这是否意味着我必须只使用AppCompat主题,而不考虑设备的API版本?

是的。或者,停止使用appcompat-v7,并从Activity继承。


有没有什么解决办法可以让应用程序支持旧设备,同时仍然能够为新设备提供时尚的主题? - Timor Gruber
1
@TimorGruber:让你的花哨主题基于Theme.AppCompat而不是Theme.Holo。我不清楚您使用Theme.Holo能够实现什么“花哨”的效果。虽然有旧版的已被弃用的操作栏后移库(例如ActionBarSherlock),但目前难以推荐它们。或者,由于Android 2.x在Google Play生态系统中的份额不到5%,将您的minSdkVersion设置为15并切换到本机操作栏。 - CommonsWare
我所说的“fancy”是指时尚,因为Holo主题看起来比AppCompat主题更“现代化”。 无论如何,感谢您的帮助,我会考虑您的建议。 - Timor Gruber
1
@TimorGruber:考虑到 AppCompat 主题被设计为在一定限度内模仿 Android 5.0+ 默认的 Theme.Material,你对“现代”的定义颇有趣。 - CommonsWare
@CommonsWare 很有个性! - mgabz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接