gpt4 book ai didi

Android Selector Drawable 不适用于属性

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:05:10 24 4
gpt4 key购买 nike

我正在使用 attr 为我的项目创建一个可绘制的选择器,这样一旦我更改主题颜色,我就不必在可绘制文件中进行任何更改。我正在使用以下库:

compile 'com.android.support:appcompat-v7:+'
compile 'com.android.support:cardview-v7:+'
compile 'com.android.support:design:22.2.0'

这里是drawable的源代码:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="?attr/colorPrimary" android:state_enabled="true" android:state_window_focused="false"/>
<item android:drawable="?attr/colorPrimaryDark" android:state_pressed="true"/>
<item android:drawable="@android:color/darker_gray" android:state_enabled="false"/>
<item android:drawable="?attr/colorPrimary"/>
</selector>

在同一代码中,如果我用 colors.xml 文件中定义的颜色替换属性,则相同的可绘制对象会起作用。

带有颜色的可绘制示例:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/color_primary" android:state_enabled="true" android:state_window_focused="false"/>
<item android:drawable="@color/color_primary_dark" android:state_pressed="true"/>
<item android:drawable="@android:color/darker_gray" android:state_enabled="false"/>
<item android:drawable="@color/color_primary"/>
</selector>

提前致谢!

最佳答案

终于找到问题了。 android [pre-lollipop] 操作系统中存在一个错误,不允许您在 drawable 中使用 attr。这是错误的链接:

https://code.google.com/p/android/issues/detail?id=26251

Android 开发团队已发布修复程序,但它适用于 android L 及更高版本。有关此问题的解决方法,请引用以下解决方案:

How to reference style attributes from a drawable?

关于Android Selector Drawable 不适用于属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30756729/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com