Android ScrollView包含带有WebView滚动行为的LinearLayout

时间:2011-06-09 11:48:58

标签: android android-webview android-scrollview

我有一个像这样的视图层次结构,一个垂直的ScrollView,其中包含一个包含两个子节点的垂直LinearLayout:

ScrollView ->orientation:vertical, width:fill_parent, height: fill_parent
   LinearLayout -> orientation:vertical, width:fill_parent, height: fill_parent  
      WebView -> width:fill_parent, height: fill_parent
      GoogleAdView -> width:wrap_content, height:wrap_content

当滚动到webview的底部并点击其中的任何链接时,虽然页面加载,但滚动条仍然位于底部而不是移动到顶部。我可以使用scroll.fullScroll(ScrollView.FOCUS_UP)以编程方式设置滚动,但这会导致滚动条明显跳跃。我尝试在页面加载scrollView.setVerticalScrollBarEnabled(false)之前隐藏滚动条,然后在页面加载之后重新启用它,然后调用scroll.fullScroll(ScrollView.FOCUS_UP),但这仍然会导致滚动条“跳转”。

WebView本身可以在页面更改时更好地处理滚动,看起来它隐藏了滚动条,然后在加载后使其显示在页面顶部。有没有办法用ScrollView来维护它?

3 个答案:

答案 0 :(得分:2)

您无法可靠地将WebView放入ScrollView

将您的广告嵌入到您的网络内容中,将横幅固定在屏幕上,或者制作一些其他触发器来动画隐藏广告(例如,在5秒后消失)。

答案 1 :(得分:0)

我通过在webview中添加AD来解决这个问题。很遗憾,您将无法使用任何广告网络SDK,但这是一种更好的用户体验。

使用javascript注入在加载webview后插入广告。

答案 2 :(得分:0)

诀窍是在将内容加载到WebView时使用loadDataWithBaseURL。简单地执行loadData不会导致滚动偏移重置。