我有一个像这样的视图层次结构,一个垂直的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来维护它?
答案 0 :(得分:2)
您无法可靠地将WebView
放入ScrollView
。
将您的广告嵌入到您的网络内容中,将横幅固定在屏幕上,或者制作一些其他触发器来动画隐藏广告(例如,在5秒后消失)。
答案 1 :(得分:0)
我通过在webview中添加AD来解决这个问题。很遗憾,您将无法使用任何广告网络SDK,但这是一种更好的用户体验。
使用javascript注入在加载webview后插入广告。
答案 2 :(得分:0)
诀窍是在将内容加载到WebView时使用loadDataWithBaseURL
。简单地执行loadData
不会导致滚动偏移重置。