在不重新加载页面的情况下切换 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

在不重新加载 web 视图的情况下更改 html 文本颜色

在Vue 3中单击路由器链接时如何在不重新加载页面的情况下切换侧边栏

如何在不重新启动活动的情况下切换主题(夜间模式)?

Android WebView:处理方向变化

在不重新加载活动的情况下更新回收站视图中的内容