其他分享
首页 > 其他分享> > 无法在AppCompatActivity中使用android:Theme.Material

无法在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)

gradle pic1
gradle pic2

由于不推荐使用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