AbsListView之问题

android:descendantFocusability 属性解决焦点冲突问题
AbsListView的每个item不仅需要显示图文 还需显示拥有触摸属性的控件如按钮、文本框等(ImageButton、Button、CheckBox、EditText 等等) 这时可能发生点击item时没有反应,也无法获取焦点。多半因为item里放着拥有触摸属性的控件,这些拥有触摸属性的控件会将焦点抢到,所以点击item时得到相应的是item里面拥有触摸属性的控件,item本身的点击没有得到响应。
这时可以修改Aandroid:descendantFocusability属性的值来解决该问题
属性左右:当view获取焦点时,定义viewGroup和其子控件两者之间的关系。


属性值定义如下    

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.

 

该属性是当一个为view获取焦点时,定义viewGroup和其子控件两者之间的关系。

属性的值有三种:

        beforeDescendants:viewgroup会优先其子类控件而获取到焦点

        afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点

        blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点

 

通常我们用到的是第三种,即在Item布局的根布局上加上android:descendantFocusability属性即可

android:descendantFocusability=”blocksDescendants”

至此listview点击的灵异事件告一段落。


AbsListView 选择item是会出先一个黑色的底色或黑框 

解决方法如下:

 android:cacheColorHint=“#00000000”


AbsListView中item的默认颜色选择器为橙黄色  有时需要去掉该颜色选择器使用自定义选择器


可以为AbsListView的android:listSelector属性设置自定义颜色选择器 也可以清除默认颜色选择器 把自定义颜色选择器设置在view的背景上


清除颜色选择器代码如下:

android:listSelector=“#00000000”






你可能感兴趣的:(AbsListView之问题)