2019独角兽企业重金招聘Python工程师标准>>>
之前项目中有个需求,webview作为recyclerview的一个item,用以实现加载H5新闻,原生实现评论的功能,当主体功能实现完毕的时候,突然出现一个意外:当滑动到文章底部的评论区域进行评论点赞,调用adapter.notifyDataSetChanged后,页面自动滚动到顶部,百思不得其解。最后经过分析,可能是webView 获取到了焦点,通过对根布局设置
android:descendantFocusability="blocksDescendants">
bug解决。
“android:descendantFocusability”的详细解释如下图所示:
descendantFocusability
大意是:
该属性是当一个为view获取焦点时,定义viewGroup和其子控件两者之间的关系。
属性的值有三种:
-
beforeDescendants:viewgroup会优先其子类控件而获取到焦点
-
afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点
-
blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点。