listview焦点冲突

listView中经常出现焦点冲突问题,导致Item不可点击,解决方法是在条目Item的跟布局添加如下属性:

android:descendantFocusability="blocksDescendants" 

该属性有3个值:

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

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

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

而在StringPicker中除了对NumberPicker中

mClazz.getMethod("setMaxValue", int.class).invoke(mInstance, values.length - 1);
mClazz.getMethod("setMinValue", int.class).invoke(mInstance, 0);
mClazz.getMethod("setDisplayedValues", String[].class).invoke(mInstance, new Object[]{values});

还有setValue和getValue进行反射调用外,就是对这个属性的设置

setDescendantFocusability
值为:
NumberPicker.FOCUS_BLOCK_DESCENDANTS
Loading Disqus comments...
Table of Contents