Android 中的 AppCompat 和主题问题
Issue with AppCompat and Themes in Android
我最近使用 minSdkVersion 15 创建了一个新项目,编译并 targetedSdkVersion 21,以及一些活动。我想为我的应用程序使用默认的 holo dark 主题,根据我只需要使用 Theme.AppCompat 的文档。当我在个人 phone (运行ning 4.4.2) 上对此进行测试时,我得到了深色全息主题和我所期望的。但是,当我 运行 最新的带有 Lollipop 的 nexus 模拟器时,主题和控件看起来完全不同。例如,Lollipop 中的开关显示为滑块,没有为 on/off 状态指定的文本。
有没有一种方法可以让我保持一致的外观和感觉(它在我的 phone 上的外观),而不必担心应用程序在新设备上看起来完全不同?
编辑:
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat">
<!-- Customize your theme here. -->
</style>
<style name="AppThemeDialog" parent="Theme.AppCompat.Dialog">
<!-- Customize your theme here. -->
</style>
</resources>
设置:
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "placeholder"
minSdkVersion 15
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.3'
}
图片:
Lollipop/Emulator版本:http://i.stack.imgur.com/u8QhX.png
Kitkat/Phone版本:http://i.stack.imgur.com/u8QhX.png
许多小部件 UI 已故意更新为最新版本 appcompat-v7
的新 'Material Design' 外观。所以如果你真的想抵制这种趋势,你将不得不用你自己的背景手动覆盖你的小部件用户界面。
我最近使用 minSdkVersion 15 创建了一个新项目,编译并 targetedSdkVersion 21,以及一些活动。我想为我的应用程序使用默认的 holo dark 主题,根据我只需要使用 Theme.AppCompat 的文档。当我在个人 phone (运行ning 4.4.2) 上对此进行测试时,我得到了深色全息主题和我所期望的。但是,当我 运行 最新的带有 Lollipop 的 nexus 模拟器时,主题和控件看起来完全不同。例如,Lollipop 中的开关显示为滑块,没有为 on/off 状态指定的文本。
有没有一种方法可以让我保持一致的外观和感觉(它在我的 phone 上的外观),而不必担心应用程序在新设备上看起来完全不同?
编辑:
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat">
<!-- Customize your theme here. -->
</style>
<style name="AppThemeDialog" parent="Theme.AppCompat.Dialog">
<!-- Customize your theme here. -->
</style>
</resources>
设置:
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "placeholder"
minSdkVersion 15
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.3'
}
图片:
Lollipop/Emulator版本:http://i.stack.imgur.com/u8QhX.png
Kitkat/Phone版本:http://i.stack.imgur.com/u8QhX.png
许多小部件 UI 已故意更新为最新版本 appcompat-v7
的新 'Material Design' 外观。所以如果你真的想抵制这种趋势,你将不得不用你自己的背景手动覆盖你的小部件用户界面。