我有一个LeafRenderObjectWidget

Column(children: [CustomRenderObject(), InkResponse(child: ..), ...])

下面是一个Column。通常,来自InkResponse的闪屏和突出显示将绘制在InkResponse中的上一个小部件的上方。如果我有以下场景,突出显示和飞溅将在Column上方呈现:
Column(children: [Container(height: ..), InkResponse(child: ..), ...])

但是,在我使用Container的场景中,我在RenderObject method of my CustomRenderObject中的paint小部件底部绘制的任何内容都将绘制在RenderBox飞溅和突出显示的上方。
InkResponseMaterial的父级。
这意味着我的突出显示和飞溅在顶部被切断。我不想给我的Column添加额外的填充。如何让我的InkReponse绘制在我的InkResponse之上?

最佳答案

此问题的解决方案是described in the troubleshooting section of the InkResponse class
如果您只是使用简单的彩色Container或类似的东西,您可以使用Ink widget代替,它将绘制到Material上,从而呈现上面的突出显示和飞溅。
另一种解决方案是添加一个InkResponse类型的Material

Material(type: MaterialType.transparency, child: InkResponse(..))

这将直接低于MaterialType.transparency本身。但是,这并不能解决我的问题,因为它将InkResponse剪辑成一个矩形。

关于flutter - 如何在其他小部件上绘制InkResponse?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55698387/

10-10 18:08