我的班级扩展了 Manager 并调用setPositionChild(Field f)
了 changef
的位置。调用setPositionChild()
方法后,如何应用位置(即重新布局和重新绘制)以便我可以看到更改?
我试图打电话invalidate()
,但没有奏效。
我的班级扩展了 Manager 并调用setPositionChild(Field f)
了 changef
的位置。调用setPositionChild()
方法后,如何应用位置(即重新布局和重新绘制)以便我可以看到更改?
我试图打电话invalidate()
,但没有奏效。
invalidate() 只是强制重绘,它不会重做整个布局,正如您所注意到的。
您可以通过转到父Screen对象并调用 invalidateLayout() 来强制重新布局。强制布局几乎肯定会在您尝试移动的字段上调用 setPositionChild(),因此您需要确保管理器布局代码保留新的字段位置。这可能意味着您需要编写一个自定义管理器。