Webview内容的预呈现和预卷

时间:2014-01-20 18:27:21

标签: android android-webview

我有一个使用片段的应用程序。其中一个片段是WebView,它显示了一些本地生成的html内容。它可能有不同的大小,但不能太大(1-30kb)。当用户单击一个片段上的按钮(让它成为FragmentA)时,我需要使用该WebView片段(FragmentB)更改它。

How is it going now:
1. Instaniate FragmentB
2. replace FragmentA with FragmentB (user sees blank white screen)
3. FragmentB loads generated html, render it (user sees top of html)
4. Page scrolls down with webView.pageDown(true) (calling it from opPageFinished()) (user sees scrolling animation to the bottom of the page)

How i want it to be:
1. Instaniate FragmentB
2. set it to some invisible container (user still have FragmentA on the screen)
3. it renders html, scrolls it down (same)
4. when page is ready, rendered and scrolled down I hide FragmentA and show FragmentB

有什么建议我能做到吗? 我尝试了我描述的第二个算法,但问题是看起来WebView不想渲染和\或滚动内容直到片段对用户可见。

2 个答案:

答案 0 :(得分:0)

用户按下片段A中的按钮后,我会立即切换到片段B.

片段B将包含您的webview,以及与webview重叠以隐藏它的内容。它可以是任何东西,甚至是简单的图像,也可以是加载动画。在onPageFinished()中,您应该调用WebView.pageDown(true),并隐藏重叠层以显示webview。

答案 1 :(得分:0)

好的,我自己弄清楚了。答案很简单。 我将FragmentA和FragmentB放在FrameLayout中,以便FragmentA位于FragmentB的“顶部”。因此,当我需要显示B时,我只是隐藏A.这就是全部。 B始终是“可见的”,可以在A背后的背景中呈现其内容。