1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > ScrollView中嵌套原生控件+WebView+原生控件出现的WebView滑动顶部的冲突问题。

ScrollView中嵌套原生控件+WebView+原生控件出现的WebView滑动顶部的冲突问题。

时间:2020-07-04 17:31:21

相关推荐

ScrollView中嵌套原生控件+WebView+原生控件出现的WebView滑动顶部的冲突问题。

开发中常有一个界面中为了灵活动态可配,常常出现在一个界面中添加WebView来加载动态URL,

界面如下所示(图中最外层为ScrollView,红色为原生控件,中间的绿色是一个WebView来动态加载URL的实现):

这个时候会出现如下问题:

1:如果采用Android原生的WebView来实现,因为原生WebView阉割了很多功能,就会出现各种兼容问题,如URL中有Video.js中的视频之类的就不能全屏播放,一些特定的需求也不能实现。

2:这个时候我们解决方案是使用腾讯的X5WebView来实现加载URL,但是出现另外一个问题,如果界面中只有WebView一般不会出现什么问题,

但是当像上图中的需求的时候会出现一个很坑的问题,是滑动的时候触摸的瞬间WebView会滑动到顶部。

解决方案:直接在外层的ViewGroup中添加:

android:descendantFocusability="blocksDescendants"

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

属性的值有三种:

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

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

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。