javajavafx:使节点不占用空间,但让其父节点决定其位置
我有一个文本字段和一个列表视图。当用户在文本字段中键入时,列表视图中会出现建议:
当TextField为空时,通过将visible和managed属性设置为false,ListView将消失
但是,当用户开始键入时,ListView会占用空间并向下推送所有内容。使用。setManaged(false)允许它不占用任何空间,但它不再显示,因为我还没有为它定义位置。我已经尝试设置搜索列表的layoutX和layoutY,但仍然没有显示
理想情况下,我希望ListView的位置受布局的影响,但不要占用任何空间
有什么想法吗
# 1 楼答案
将包含文本字段的容器包装成
AnchorPane
。将ListView
添加到文本字段容器后面的AnchorPane
中(使其保持在顶部)。然后,在使ListView
可见时,需要将其相对于文本字段进行适当的定位;我认为最好的方法是首先将文本字段的边界从局部坐标转换为Scene
坐标,然后将这些边界转换为相对于AnchorPane
的坐标以下是一个SSCCE:
您可能可以使用类似的位置技巧,只需将其添加到同一场景中,
managed
设置为false