Java Android:重叠使得列表错误
我有一个自定义的列表视图,并使重叠非常简单:在Java Android:重叠使得列表错误,java,android,listview,drawable,overlap,Java,Android,Listview,Drawable,Overlap,我有一个自定义的列表视图,并使重叠非常简单:在onDraw方法中,我将行的z轴设置为大约200,并覆盖getChildDrawingOrder(intChildCount,inti)。结果如下所示: 当然,还有更多这样的过渡,但它们与这个问题无关 但正如你所看到的,在大约一秒钟的时间里,最上面一行(我的意思是在z轴上,它是白色的)看起来像四轮马车。有imageview两种状态可通过坐标绘制(行位于中心时为白色,行位于中心外时为蓝色)。通过设置背景可绘制,以编程方式更改可绘制。这个错误似乎显示了
onDraw
方法中,我将行的z轴设置为大约200,并覆盖getChildDrawingOrder(intChildCount,inti)
。结果如下所示:
当然,还有更多这样的过渡,但它们与这个问题无关
但正如你所看到的,在大约一秒钟的时间里,最上面一行(我的意思是在z轴上,它是白色的)看起来像四轮马车。有imageview
两种状态可通过坐标绘制(行位于中心时为白色,行位于中心外时为蓝色)。通过设置背景可绘制,以编程方式更改可绘制。这个错误似乎显示了从一个可绘制到另一个可绘制的转换发生的时间:底层的重绘发生在行的主要部分之后。我需要同时制作这两个部件来更换抽绳,这样就不会出现这样的错误。是安卓的bug还是我能解决它
有人知道为什么会这样吗 android:cacheColorHint=“#00000000”
在您的列表视图中。试试看
问候,
Fabianandroid:cacheColorHint=“#00000000”
在您的列表视图中。试试看
问候,
Fabian我使用nininho建议在
受保护的布尔drawChild(画布、最终视图子对象、长drawingTime){}
方法end中应用requestLayout(),它可以正常工作
另外,把它放在你真正需要的地方,我只把它放在过渡的地方,因为这个方法消耗了大量的资源,同时它重新绘制了整个子对象。我使用nininho建议在
受保护的boolean drawChild(Canvas Canvas,final View child,long drawingTime){}
方法end中应用requestLayout(),效果很好
另外,将其放在您真正需要的地方,我只将其放在转换的地方,因为此方法会占用大量资源,同时会重新绘制整个子级。当您更改绘图顺序时,可以在更改的z顺序视图上调用invalidate或requestlayout。也许可以检查Gallery视图是如何实现的。requestLayout()的工作原理!它使用了更多的资源,但我尝试在性能较差的地方实现它。当您更改绘图顺序时,可以在更改的z顺序视图上调用invalidate或requestlayout。也许可以检查Gallery视图是如何实现的。requestLayout()的工作原理!它使用了更多的资源,但我正在尝试在与性能关系不大的地方实现它