Selector在drawable和color目录下使用的规范
来源:互联网 发布:怎么js调用方法 编辑:程序博客网 时间:2024/04/29 05:51
上个星期项目运行在4.3的机子上出了一个很奇怪的bug,就是到了指定页面就会崩溃,而其他的页面并不会出现这个问题,log日志打印打印如下:
android.view.InflateException: Binary XML file line #2: Error inflating class <unknown>...
报错的地方在该页面的adapter的inflate布局处,而且是在第二行,这就让我一脸懵逼,我的根布局就是使用的是一个简简单的相对布局,也不是什么自定义的布局。而且试遍了公司所有的测试机,仅仅在这个sansong的机子上有问题。
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/recycler_item_click_selector" android:paddingLeft="13dp"></RelativeLayout>
后来在网上找寻解决方案,但是最终却没有找到办法解决这个bug,就当我快要放弃的时候,公司的老大说他貌似知道哪里的问题,他说他之前也踩过这个坑。没错就是我的跟布局的background属性的这个自定义条目点击背景,修改之前我是这么写的:
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@color/background_item"/> <item android:drawable="@color/white"/></selector>
可以看到我的drawable文件引用的时候@color中的资源颜色资源,当然基础扎实的人可能不会这么写,我这个小菜鸟就在这里栽了坑。借此机会也学习了一下到底如何规范使用颜色selector和drawable的selector。
- selector作为drawable资源时,放于drawable目录下,并且item指定android:drawable属性,并drawable资源引用使用@drawable
而不是@color(虽然这样编辑器并不会报错,但是不推荐这么做,避免指定机型出bug)- selector作为color资源时,item指定android:color属性,并放于color目录下。
- res/values/colors中的条目即可以使用
<color name="colorAccent">#FF4081</color>
也可以使用<drawable
name="white">#ffffffff</drawable>
所以修复完成后应该改成:
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:color="@color/background_item"/> <item android:color="@color/white"/></selector>
并将该selector放在color文件夹下,本布局中引用换成
android:background="@color/recycler_item_click_selector"
0 1
- Selector在drawable和color目录下使用的规范
- 选择器selector中drawable和color的区别
- android drawable下的selector和shape共用结构
- 在drawable添加<selector>
- Android UI selector 例子 (drawable/color)
- 25、TextView 设置Color/drawable Selector
- 用到的drawable selector和shape自定义
- Drawable基础知识总结----drawable标签selector的使用
- Android 定义 Color 和 Drawable 的方法
- color.xml 中定义drawable和color的区别
- drawable目录下的xml
- Android的selector和shape基本使用和color颜色列表
- drawable的selector标签
- Android 使用 selector 来改变TextView在不同状态下的textColor和background
- mipmap目录和drawable目录的区别
- drawable下的非图片资源之selector
- 一个工具类搞定drawable下扎堆的selector
- 【实战】一个工具类搞定drawable下扎堆的selector
- 横竖屏切换保存数据
- Oracle学习之:Rman备份策略
- Java设计模式之《桥接模式》及应用场景
- 线程池的原理及java实现
- Python生成器、迭代器、装饰器
- Selector在drawable和color目录下使用的规范
- hdu5781 ATM Mechine 概率dp
- java基础之获取一定范围的随机数字14
- 杭电oj---2002 计算球体积
- 1004. 成绩排名
- Android的事件分发机制
- LTE 网元
- 有关opencv的学习(9)—计算图像直方图
- 算法中的 log