首页 > 解决方案 > 对话框 - 不必要的多重绘图?

问题描述

从 Lollipop (5.0.2) 升级到 Nougat (7.1.2) 后,客户端向我报告了在屏幕上显示后重复绘制对话框的令人不安的现象。在具有许多控件的对话框中可以清楚地看到这个问题。

Lollipop 下的相同应用程序正常工作:

切换到牛轧糖后:

在四个附加的电影中,我在不同的情况和 Android 版本中展示了这种现象。查看对话框的底部边缘:

  1. Lollipop - 与 ListView 对话- 正确
  2. Lollipop - 带有 ScrollView 的对话框- 正确
  3. Nougat - 与 ListView 对话- 不正确!
  4. Nougat - 带有 ScrollView 的对话框- 不正确!

在带有ListView 的对话框的情况下,在Nougat 下,对于每个元素,Adapter.getView() 方法最多被调用了36 次!我想,这意味着,dlalog 被画了 36 次。

在布局 xml 中进行了一些更正后,我能够将 Adapter.getView () 调用的数量减少到 5,但永远不会减少到 1。

但是,在Nougat下,在没有ListView的对话框的情况下,对话框出现在屏幕上后,仍然存在“匹配”的难看效果。在 Lollipop 下,每个项目只有一次对 Adapter.getView() 的调用。

请帮忙,如何尝试消除这种影响?

客户无法将 Android 版本更改为较新的版本,因为它是一个大型产品,经过 Nougat 测试后,我们再也负担不起了。

标签: androidlistviewandroid-7.0-nougat

解决方案


推荐阅读