无法在AppCompatActivity中使用android:Theme.Material
作者:互联网
首先,我创建了两个样式,一个是值,另一个是值-21.
在values / styles.xml中
<resources>
<style name="AppTheme" parent="Theme.AppCompat"></style>
</resources>
在values-v21 / styles.xml中
<resources>
<style name="AppTheme" parent="android:Theme.Material"></style>
</resources>
我的gradle文件(app.gradle)
由于不推荐使用ActionBarActivity,因此我使用了AppCompatActivity.
当我在MainActivity中设置这两个样式值并扩展AppCompatActivity时,我得到了异常:
java.lang.IllegalStateException: You need to use a Theme.AppCompat
theme (or descendant) with this activity.
我做了两个不同的更改,异常再也没有出现过:
>扩展“android.app.Activity”而不是v7.AppCompatActivity.
>在values-v21 / styles.xml中更改为“Theme.AppCompat”.
如果我想使用设计主题,我应该扩展“android.app.Activity”吗?
或者,是否有另一种使用材料设计主题的方法?
谢谢.
解决方法:
在styles.xml文件中替换下面的主题.
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
</style>
<style name="MyMaterialTheme" parent="MyMaterialTheme.Base">
<item name="android:windowContentTransitions">true</item>
<item name="android:windowAllowEnterTransitionOverlap">true</item>
<item name="android:windowAllowReturnTransitionOverlap">true</item>
</style>
<style name="MyMaterialTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
</resources>
并使用在MainActivity中扩展AppCompatActivity.
最后在Manifestfile中使用此主题.
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/MyMaterialTheme">
</application>
Gradle文件依赖项.
dependencies
{
compile fileTree(dir: 'libs', include: ['*.jar']) compile
'com.android.support:appcompat-v7:23.3.0' compile
'com.android.support:recyclerview-v7:23.1.1' compile
'com.android.support:cardview-v7:23.2.1' // For NavigationView Using Menu
'compile 'com.android.support:design:23.3.0' // For Google Map compile
'com.google.android.gms:play-services-maps:9.8.0'
}
根据需要编辑我的主题.
希望它能帮助……
标签:appcompatactivity,android,android-theme,android-appcompat 来源: https://codeday.me/bug/20190828/1754477.html