java - Android:重叠使列表错误

标签 java android listview drawable overlap

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

enter image description here

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

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

有谁知道为什么会这样?

最佳答案

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

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

关于java - Android:重叠使列表错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10846374/

相关文章:

qt - 是否可以仅显示 QML ListView 的某些索引?

Delphi:在 ListView 中绘制自己的进度条

java - Android Firebase 数据库中的排序键

javascript - 在网页上显示Kafka消息

HttpSessionListener 中的 Java Web 应用程序 HttpServletRequest

android - 无法在 eclipse 中导入 NineOldAndroids

java - 根据不同集合中文档的存在情况将文档添加到集合中

java - 反向配置 LDAP

java - 对于选项卡式 Activity 中使用 fragment 的 GridView ,适配器为空

Android:关于listview的item颜色