什么是 AppCompat 主题,我可以更改它吗?

What is AppCompat theme and can I change it?

我是 Android Studio 的新手。不久前我提到“AppCompat.NoActionBar”主题非常适合我的应用程序,但很快我意识到我想改变它的主要灰色。我已经为此设置了一些颜色资源。 我的问题是如何重新定义 AppCompat 原色,它是否是一个好的解决方案(甚至可能)?现在,我只想将我的应用程序背景颜色更改为我的 colors.xml 文件中已有的颜色,如“bg_lighter_gray”。 我所知道的是我可以使用 android:background 属性 来改变每个 activity 的颜色,但是有没有办法让它们被应用程序的主题继承,所以我不会每次都要手动定义背景颜色?

在您的themes.xml(或styles.xml)中您可以定义您的主题:

<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/...</item>

</style>

然后您可以将它应用到您的应用程序中:

<manifest ... >
    <application android:theme="@style/AppTheme" ... >
    </application>
</manifest>

或只有一个 activity:

<manifest ... >
    <application ... >
        <activity android:theme="@style/AppTheme" ... >
        </activity>
    </application>
</manifest>

为了解决我的问题,我在 themes.xml 中添加了一项:

    <style name="Theme.ThemeTest" parent="Theme.AppCompat.NoActionBar">
        ...
        <item name="android:windowBackground">?attr/colorOnPrimary</item>
    </style>