无法理解如何使用Theme.AppCompat为前Lollipop设备设置Android应用程序样式

时间:2015-07-07 11:37:50

标签: android android-theme

我的大脑即将吹响Android的主题样式。有人,请帮帮我! 我尝试为我的应用创建主题,以便尽可能提供与前后Lollipop 设备相似的外观。所以,我从Theme.AppCompat.NoActionBar继承了我的主题,我AppCompatActivity的活动设置了colorPrimarycolorPrimaryDarkcolorAccent。一切顺利。当我尝试设置背景和文本颜色时,问题就出现了。我设置了android:textColorPrimaryandroid:textColorSecondary并获得了我想要的Lollipop设备,但没有设置在KitKat上,所以我添加了textColorPrimarytextColorSecondary属性到主题,之后 Android Studio 表示它无法构建应用,因为无法找到这些属性。我尝试添加colorBackground时也是如此。我曾试图谷歌,但无法找到有关哪些属性由哪个主题提供的有用信息,以及我应该在我的情况下使用什么。

2 个答案:

答案 0 :(得分:2)

您必须为棒棒糖值-v21 创建两个值文件夹,为棒棒糖前创建简单的

对于棒棒糖前设备,请参阅此样式,只需将其粘贴到 values / styles.xml

<强> Styles.xml

<resources>

    <style name="MyMaterialTheme" parent="MyMaterialTheme.Base">

    </style>


    <style name="MyMaterialTheme.TransparentActivity">
        <item name="android:windowBackground">@android:color/transparent</item>
        <item name="android:windowIsTranslucent">true</item>
    </style>

    <style name="MyMaterialTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android: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>
        <item name="android:textColorPrimary">@color/textColorPrimary</item>
        <item name="android:windowBackground">@color/windowBackground</item>
    </style>
</resources>

请参阅official documentation on android blog

答案 1 :(得分:1)

如果你想为不同的api设置应用程序样式,你必须为文件夹名称value-v(sdk版本)为例如lollipop的值-v21,kitkat的值-v19,...但在这种情况下我认为你只需要创造价值-v21。

在该文件夹中,创建一个xml文件style.xml并根据api使用相应的属性。