这个属性主要是为了解决焦点问题。
两种情况:
1.ListView的item有Button时,点击item无响应。
2.在ScrollView时,里面包裹的内容超过了屏幕的长度,当进去scrollView直接自动滑动到最底部。
这两个问题都可以通过android:descendantFocusability属性做到。该属性在view获得焦点时,定义ViewGroup和其子控件两者之间的关系。
该属性有三种值:
beforeDescendants:viewGroup会优先其子类控件而获得焦点
afterDescendants:viewGroup会当其子控件不需要获得焦点时才获取焦点
blockDescendants:viewGroup会覆盖子类控件而直接获得焦点
针对问题一:
item在获得焦点的时候,把item的根布局的属性设置为android:descendantFocusability=“blockDescendants”
【根布局本身就是一个viewGroup】
针对问题二:
scrollView下面的ViewGroup中设置android:descendantFocusability为blockDescentants。
这样会让viewGroup获得焦点,然后在焦点里面处理,就不会滑到最下面了。
【父控件获得焦点,不把焦点传递给子控件】