ScrollView中嵌套原生控件+WebView+原生控件出现的WebView滑动顶部的冲突问题。
程序员文章站
2022-03-08 15:25:54
开发中常有一个界面中为了灵活动态可配,常常出现在一个界面中添加WebView来加载动态URL,界面如下所示(图中最外层为ScrollView,红色为原生控件,中间的绿色是一个WebView来动态加载URL的实现):这个时候会出现如下问题:1:如果采用Android原生的WebView来实现,因为原生WebView阉割了很多功能,就会出现各种兼容问题,如URL中有Video.js中的视频之类的就不能全屏播放,一些特定的需求也不能实现。2:这个时候我们解决方案是使用腾讯的X5WebView来...
开发中常有一个界面中为了灵活动态可配,常常出现在一个界面中添加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会覆盖子类控件而直接获得焦点
本文地址:https://blog.csdn.net/qq_42618969/article/details/109627933
上一篇: 我们现在打麻将三缺一