Android 如何有效地实现混合HTML和本机面板的提要UI?

Android 如何有效地实现混合HTML和本机面板的提要UI?,android,android-webview,Android,Android Webview,我想实现一个应用程序,它的主视图类似于一个异构的Twitter提要——提要中的一些卡片将呈现为HTML,其他卡片将以本机方式呈现。原因: 提供本地的外观和感觉 提供一些openGL Sexynes 确保提要窗口本身不是webview,并以本机方式进行管理,以避免HTML抖动 确保无需应用程序更新即可将新类型的内容推送到应用程序 我怀疑拥有很多独立的webview组件会非常昂贵,特别是因为每个HTML卡都共享一组通用的CSS和JS 那么,有没有针对这种情况进行优化的方法?因为我有很多HTML卡

我想实现一个应用程序,它的主视图类似于一个异构的Twitter提要——提要中的一些卡片将呈现为HTML,其他卡片将以本机方式呈现。原因:

  • 提供本地的外观和感觉
  • 提供一些openGL Sexynes
  • 确保提要窗口本身不是webview,并以本机方式进行管理,以避免HTML抖动
  • 确保无需应用程序更新即可将新类型的内容推送到应用程序
我怀疑拥有很多独立的webview组件会非常昂贵,特别是因为每个HTML卡都共享一组通用的CSS和JS

那么,有没有针对这种情况进行优化的方法?因为我有很多HTML卡,所以我希望它们共享公共资源。例如,一个WebView是否可以支持多个DOM窗口,每个DOM窗口都可以指向my feed视图中的一个单独的Android面板?(或者我可以在多个Web视图之间共享HTML执行组件吗?)

像这样

(注意,HTML卡都包含交互元素——作为图像呈现没有帮助)


可以为多个Web视图共享单个webkit WebViewClient吗

据我所知,不,不能使用一个WebView来提供多个物理视图

然而,您所描述的看起来像是RecyclerView(您所描述的“本机容器”)中的卡片。 在这种情况下,你的网络视图只会和可见的卡片一样多(加上,可能有两个缓冲的屏幕外),所以一次只有几个,而不是几百个

如果需要,您可以通过重新使用一小组Web视图,在适配器的绑定阶段将它们重新分配给项UI,从而节省一些渲染时间

是的,您当然可以在多个WebView之间共享一个WebViewClient—这就是为什么几乎所有WebViewClient的方法都将WebView作为第一个参数