在不重新加载页面的情况下切换 webview 活动
Posted
技术标签:
【中文标题】在不重新加载页面的情况下切换 webview 活动【英文标题】:switching between webview activity without reloading the page 【发布时间】:2012-02-11 20:39:55 【问题描述】:这是我想做的。 我想让多个 webview 加载他们自己的页面。这些 web 视图是在不同的活动中创建的,这些活动是由项目单击列表视图产生的。
有时我想从一个 webview 活动切换到另一个。
我的尝试表明,在这些活动之间切换总是调用 onCreate() 方法,该方法调用 webView.loadUrl()。因此,每次切换时都会重新加载网页。
任何人有想法设计这样的活动导航?关键是如何在不重新加载里面的 webView 的情况下切换到现有的活动。感谢您的进步
【问题讨论】:
【参考方案1】:如果您为每个 webView 创建一个活动,则不可能按照您的描述进行操作。发生这种情况是因为您关闭了每个活动并给 GC 一个“OK”以收集它并抛出所有 WebView 数据。
-
您需要做的是创建某种 Web 容器,该容器将容纳预定义数量的 WebView(不要保持超过 6 个,否则会占用您设备的内存)。
每当您按下列表项时,开始在您的容器中加载 WebView,并使其在当前布局的顶部可见。
当您按下返回时,只需将 Web 容器的可见性设置为 GONE。
如果您尝试打开第 7 个 WebView,只需杀死第一个,然后继续。
此方法将确保您拥有无需再次加载的实时 WebView...
希望这会有所帮助。
【讨论】:
【参考方案2】:您可以使用ViewAnimator 来完成此操作。创建您的 WebView 并将它们添加到 ViewAnimator (类似)
mViewAnimator.addView(mWebView0, index_0, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT));
然后按索引切换到特定的 WebView(类似)
mViewAnimator.setDisplayedChild(index_0);
【讨论】:
以上是关于在不重新加载页面的情况下切换 webview 活动的主要内容,如果未能解决你的问题,请参考以下文章
WKWebView 在不重新加载页面的情况下评估 Javascript