Как использовать ActionBarActivity с Theme.Material
Я создал новый проект, ориентированный на предварительный просмотр L. Однако активность стартера, которую генерирует sdk, расширяет ActionBarActivity, однако, когда я пытаюсь запустить сгенерированную с нуля функцию, она выдает следующее исключение:
Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
at android.support.v7.app.ActionBarActivityDelegate.onCreate(ActionBarActivityDelegate.java:110)
at android.support.v7.app.ActionBarActivityDelegateICS.onCreate(ActionBarActivityDelegateICS.java:57)
at android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.java:99)
Я огляделся, но Theme.AppCompat.Material
, похоже, не существует. Как заставить ActionBarActivity использовать новые темы материалов?
My build.gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 'android-L'
buildToolsVersion '20.0.0'
defaultConfig {
applicationId 'com.sdchang.example'
minSdkVersion 'L'
targetSdkVersion 'L'
versionCode 1
versionName '1.0'
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.+'
compile 'com.mcxiaoke.volley:library:[email protected]'
compile 'com.google.code.gson:gson:2.2.+'
compile 'com.squareup.okhttp:okhttp:2.0.+'
}
Ответы
Ответ 1
AppCompat v21. + Theme.AppCompat
extends Theme.Base.AppCompat
, который расширяет Theme.Platform.AppCompat
, который расширяет android:Theme.Material
на устройствах с 21 + (например, Android L), поэтому вам не нужно ничего делать, чтобы получить Material
, если вы используете AppCompat.
Ответ 2
Вам нужно изменить зависимость в сборке gradle на
compile 'com.android.support:appcompat-v7:21.+'
Ответ 3
Используйте следующую тему:
android:theme="@style/Base.V7.Theme.AppCompat" >