@zzudhj
2015-09-20T22:25:36.000000Z
字数 1593
阅读 1593
未分类
selector是在开发过程中常用到的一种资源文件,在使用的时候大部分都是直接copy够来使用的,可是偶尔也会出现一些问题(自己写的时候)
场景:圆角按钮
方法一:可以通过图片资源实现,要使用.9图片来做哦,不然适配会很恶心的
方法二:coding实现,自定义实现资源文件
实现代码如下:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<solid android:color="#" />
<stroke android:width="1dip" android:color="#" />
<corners android:radius="6dp" />
</shape>
</item>
<item android:state_pressed="true">
<shape>
<solid android:color="#" />
<stroke android:width="1dip" android:color="#" />
<corners android:radius="6dp" />
</shape>
</item>
</selector>
如果直接使用上面代码,会发现selector根本不起作用。???
问题究竟在哪里呢?查看Android官方selector的的使用方法,也不觉的有问题,细心的可以发现,官方文档上的状态其实是有顺序的(默认状态放在第一个),于是乎,修改了一下顺序:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape>
<solid android:color="#" />
<stroke android:width="1dip" android:color="#" />
<corners android:radius="6dp" />
</shape>
</item>
<item>
<shape>
<solid android:color="#" />
<stroke android:width="1dip" android:color="#" />
<corners android:radius="6dp" />
</shape>
</item>
</selector>
ok。只想提醒大家,在码代码的时候要特别小心,有时候自己粗心的copy,会给自己带来一些麻烦,导致工作效率低下啊。
这里是 selector的参考文章
在使用ListView的过程中,会经常遇到各种selector的问题:在listView中设置,在item中设置, 还是无效。。。。
有这么一个属性descendantFocusability,值得关注一下
API描述:
android:descendantFocusability
Defines the relationship between the ViewGroup and its descendants when looking for a View to take focus.
Must be one of the following constant values.
通常情况下会在item中android:descendantFocusability="blocksDescendants" 使得子空间直接获得焦点(在item中,listView的item对item中有的点击事件进行拦截,我们可以通过descendantFocusability,使得item中的子空间优先获得焦点)
参考文章 descendantFocusability