【发布时间】:2015-06-16 02:36:24
【问题描述】:
我正在开发 developer.android.com 上的介绍教程,并希望看到我的应用使用 Holo 主题。不幸的是,Android Studio 不断将应用改回 Theme.AppCompat.Light.DarkActionBar 主题。该应用程序有两个活动。第一个有一个 EditText 和一个按钮,第二个活动只显示一个 TextView。在添加第二个活动之前,我可以通过打开第一个活动的 .xml,单击“预览”,然后从预览窗格顶部选择 Holo 主题,将 Holo 主题应用于第一个活动。这工作正常。然后我创建了第二个活动,并做了同样的事情,但现在当我运行应用程序时,它没有使用 Holo 主题。
清单有:
<application
...
android:theme="@style/AppTheme" >
和样式文件:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
我尝试将该行更改为 <style name="android:Theme.Holo">,但这会导致应用在运行时崩溃。
本教程似乎是假设 Android Studio 的默认 Hello World 活动将默认为 Holo,但事实并非如此。我不认为这是因为我试图支持的版本:
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.example.me.myfirstapp"
minSdkVersion 16
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
所以我的问题是双重的。如何让应用使用 Holo 主题运行,以及如何让 Android Studio 在我每次在项目中创建新活动时停止切换回 AppCompat?
【问题讨论】:
-
您可以使用 holo,但只能在 API >= 14 上使用。您的活动必须扩展
Activity而不是ActionBarActivity。 -
@EugenPechanec 因为 minSdkVersion 是 16,我不适合使用 Holo 吗?我不明白你对 API 14 的评论。另外,你能解释一下为什么我需要扩展 Activity 而不是 ActionBarActivity 吗?当我在Android Studio中进入New>Activity>Blank Activity时,它选择了ActionBarActivity,如果我真的必须直接扩展Activity,有没有办法改变这个默认行为?
-
您可以尝试从依赖项中删除 appcompat-v7,然后创建一个新活动。但我怀疑它最终会和现在一样。恕我直言,您最好自己创建空 Java 类(结束编写 extends 子句)和 xml 布局。
标签: android android-theme