1

我有一个自定义列表视图并使重叠非常简单:在onDraw方法中,我将行的 z 轴设置为大约 200 并覆盖getChildDrawingOrder (int childCount, int i). 所以结果看起来像这样:

在此处输入图像描述

当然,还有更多的过渡看起来像这样,但它们与这个问题无关。

但正如你所见,大约有一秒钟,第一行(我的意思是在 z 轴上,它是白色的)看起来有问题。通过坐标有imageViews两种状态可绘制(行在中心时为白色,在中心外时为蓝色)。通过设置背景可绘制对象以编程方式更改可绘制对象。错误似乎显示了从一个可绘制对象过渡到另一个可绘制对象的时间:底部部分的重绘发生在行的主要部分之后。我需要同时制作两块来更改可绘制对象,所以不会有这样的错误。这是android的错误还是我可以解决它?

有谁知道为什么会发生这种情况?

4

2 回答 2

1

我使用 nininho 建议在rotected boolean drawChild(Canvas canvas, final View child, long drawingTime) {}方法结束时应用 requestLayout() 并且它有效。

PS 把它放在你真正需要它的地方,我只把它放在过渡的地方,因为这种方法会消耗大量资源,同时它会重新绘制整个孩子。

于 2012-06-20T07:53:08.227 回答
0

安卓:cacheColorHint="#00000000"

在您的列表视图中。试试看。

问候,

费边

于 2012-06-14T09:03:49.143 回答