android:descendantFocusability属性在ListView中的妙用

      以前项目中有个需求,webview做为recyclerview的一个item,用以实现加载H5新闻,原生实现评论的功能,当主体功能实现完毕的时候,忽然出现一个意外:当滑动到文章底部的评论区域进行评论点赞,调用adapter.notifyDataSetChanged后,页面自动滚动到顶部,百思不得其解。最后通过分析,多是webView 获取到了焦点,经过对根布局设置android

android:descendantFocusability="blocksDescendants">

bug解决。web

     

 

“android:descendantFocusability”的详细解释以下图所示:布局

descendantFocusability

descendantFocusabilitywebview

大意是:it

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

  属性的值有三种:im

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

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

  • blocksDescendants:viewgroup会覆盖子类控件而直接得到焦点。img

相关文章
相关标签/搜索