【问题标题】:How does drawing view outside the screen affect performance in Android?屏幕外的绘图视图如何影响 Android 中的性能?
【发布时间】:2017-06-28 16:10:23
【问题描述】:

我正在尝试为多个 web 视图创建某种水平幻灯片。滑块中可以有很多视图,但最多只会显示三个(一个在中心,另外两个部分隐藏在屏幕之外)。

在我的早期实现中,我创建了一个基于 RelativeLayout 的自定义视图组。我添加了所有需要的 webview,在 onLayout 中,我调用了将显示的三个 webview 的 layout 方法。我通过滚动切换显示的网络视图。

所以这是我的问题:Android 对那些未显示的内容做了什么?他们的draw 方法是否被调用?有很多视图没有像那样显示会影响性能吗?

作为一个附带问题,webview 是否会加载它们的内容,即使它们在屏幕之外?还是需要画出来?

【问题讨论】:

    标签: android performance webview


    【解决方案1】:

    是的,在您描述的情况下,即使不显示,它们也会被绘制。

    在这种情况下,您最好的做法是使用 ViewPager。

    默认情况下,Viewpagers 仅绘制显示的内容以及内容左侧/右侧的页面(如果您愿意,可以将其更改为全部绘制)。

    回答你的问题:

    是的,draw 方法被调用了。它简单地称为屏幕外。该视图完全存在并且可以被带入视图。这就是为什么滚动视图中的元素总是存在的原因。

    这就是 listviews/recyclerviews/viewpagers 存在的原因。离屏元素由父视图组自动处理以节省内存。

    第二个问题,是的,即使加载到屏幕之外,webview 也会加载它们的内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-22
      • 2011-02-03
      • 1970-01-01
      • 2012-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多