【问题标题】:What is AppCompat theme and can I change it? [duplicate]什么是 AppCompat 主题,我可以更改它吗? [复制]
【发布时间】:2021-03-31 18:03:16
【问题描述】:

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

【问题讨论】:

    标签: android android-studio android-theme


    【解决方案1】:

    在您的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>
    

    或仅一项活动:

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

    【讨论】:

    • 感谢您的回答,但我仍然没有弄清楚。 “colorPrimary”是预定义的名称吗?当我更改它的值时,我的应用程序实际上并没有发生任何事情。即使我在清单中应用了我的自定义主题。
    • @PapkaScallom 是的,它是小部件使用的内置属性。查看更多信息:developer.android.com/guide/topics/ui/look-and-feel/themes
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-03
      • 2013-12-06
      • 2017-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-29
      • 1970-01-01
      相关资源
      最近更新 更多