美文网首页
ScrollView里嵌套WebView

ScrollView里嵌套WebView

作者: 秋缘未了 | 来源:发表于2016-12-19 16:09 被阅读1839次

    外层使用ScroolView,内层嵌套使用WebView来加载H5的商品详情页面。

    但是遇到一个问题,每次进入Activity页面时,整个页面起始位置并不是顶部。而是webview的页面

    类似的问题网上有很多,比如ScrollView和ListView嵌套也会导致起始位置不对的情况。

    亲自实践 解决办法:

    去掉焦点,并使用descendantFocusability属性解决焦点冲突。

    参考:

    WebView 和 ScrollView都是可以滚动的,当这两个View嵌套时,容易出现一些问题。其中比较常见的,是嵌套在

    ScrollView 中的WebView 的焦点问题.

    如果不做任何处理,则会出现WebView加载后获得焦点,在WebView并非占满屏幕时点击WebView内容,ScrollView就会自动滚动,使WebView占满屏幕。(ListView也会出现类似问题,即使修正了高度,也会主动获得焦点,使得屏幕产生错误的滚动)。经过一番搜索研究,发现解决方法竟出奇的简单,只需要一行:

    descendantFocusability属性的作用是当一个view获取焦点时,定义viewGroup和其子控件两者之间的关系。而blocksDescendants是viewgroup会覆盖子类控件而直接获得焦点。

    在webview的父view加上这行代码就解决了这个问题

    相关文章

      网友评论

          本文标题:ScrollView里嵌套WebView

          本文链接:https://www.haomeiwen.com/subject/ifomettx.html