本文介绍了为什么?attr/colorAccent在棒棒糖版本以下不起作用?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已将主题添加到我的应用程序中.为此,我使用了多种强调色来添加图像按钮.我有一个名为fab选择器xml的xml文件,该文件为图像按钮提供了形状和颜色.但是该文件有例外.

I have added themes to my application. For this I have used multiple accent colors to add on image button. I have a xml file named fab selector xml , which gives shape and color to image button. But its giving exceptions on this file.

第一个异常是类图像按钮的inflateException.第二个是找不到资源fab选择器异常. Fab选择器位于可绘制文件夹中.

1st exception is inflateException for class image button.2nd is resource not found Exception for fab selector. Fab selector resides in drawable folder.

它还会显示,",原因:java.lang.UnsupportedOperationException:无法转换为颜色:type = 0x2

Its also showing ,, Caused by: java.lang.UnsupportedOperationException: Can't convert to color: type=0x2

如果我使用<solid android:color="?attr/colorAccent" />

?attr/colorAccent,如果我使用它,效果很好

?attr/colorAccent and it works fine if I use

 <solid android:color="@color/colorAccent">

因为它给出十六进制颜色值.

as it gives hex color value.

奇怪的是,我将其应用于工具栏的方式也是如此,它也可以在棒棒糖以下使用.唯一的例外是在fab选择器文件上.

The strange thing same way I have applied this to toolbar and it works below lollipop as well. Only it's giving exception on fab selector file.

我不知道该如何克服?

Fab选择器

    <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true">
        <shape android:shape="oval">
            <solid android:color="?attr/colorAccent" />
        </shape>
    </item>

    <item android:state_focused="true">
        <shape android:shape="oval">
            <solid android:color="?attr/colorAccent" />
        </shape>
    </item>

    <item>
        <shape android:shape="oval">
            <solid android:color="?attr/colorAccent" />
        </shape>
    </item>

</selector>

日志:

我在style.xml中提到了colorAccent

I have mentioned colorAccent in style.xml

 <!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:textColorSecondary">@color/white</item>
    <item name="windowActionBarOverlay">false</item>

    <item name="windowActionBar">false</item>

    <item name="windowNoTitle">true</item>
    <item name="android:windowBackground">@color/background_material_light</item>
</style>

该怎么办?谢谢你.

推荐答案

您尝试执行的操作仅适用于Android级别> = 21.

What you are trying to do only works for Android level >=21.

请参见此处:支持在可绘制XML中引用主题属性

从我读到的内容来看,这是一个错误...您可以在此处此处.

From what I read it was a bug...You can read some more on this problem here or here.

这篇关于为什么?attr/colorAccent在棒棒糖版本以下不起作用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

06-18 11:15