4

我刚开始使用 Android 开发,所以请耐心等待。我已经下载了 Android Studio,当我开始一个新项目时,它的主题叫做Theme.AppCompat.Light(即使很难,我在创建新项目时选择了 Holo Light)。所以我的问题是,为什么 android 使用它,它有什么用?我尝试将其更改为,android:Theme.Holo.Light但它只是给了我一个错误:java.lang.IllegalStateException:您需要在此活动中使用 Theme.AppCompat 主题(或后代)。

我正在使用这个 SDK 配置: android:minSdkVersion="7" android:targetSdkVersion="18"

所以我的问题是,你为什么要使用 AppCompat,我必须做什么才能让我的应用程序使用 Holo 主题。

我的活动类只是生成的默认值(它扩展了 ActionBarActivity)。

4

4 回答 4

3

Holo 主题是在 API 级别 14 中引入的。

改变你android:minSdkVersion="7"android:minSdkVersion="14"

如果您想至少保留 7 个,请使用此项目获取 Holo 主题:HoloEverywhere

于 2013-11-21T14:51:31.800 回答
2

那是因为您使用的 SDK 7 (Android 2.1) 对 Holo 一无所知。Android 团队提供了一个看起来(几乎)像 Holo 的兼容性主题。

在一个侧节点上,您至少应该切换到 SKD 10,这将使您的生活更轻松。

于 2013-11-21T14:48:07.903 回答
1

请参阅 API 11 中引入了 ActionBar,因此为了向后兼容 Google 发布了支持库。您并在此处阅读Android 支持库,您还可以找到如何在您的应用程序中使用它们。Google 不仅为操作栏提供支持库,用于向后兼容新设备上可用的许多新功能,并使它们在旧设备上工作。

于 2013-11-24T10:48:44.400 回答
0

创建项目时的默认 Activity 从最低 api 级别 15 或更高级别的ActionBarActivity继承,我将其更改为 Activity ,现在我的 Activity 继承自Activity。现在我可以更改为 Holo 或其他主题。我猜从 ActionBarActivity 继承需要 appcompat 主题。

于 2015-07-13T03:54:10.300 回答