0
我试图创建具有自身内部的图像部分文本框,类似于this。如何防止圆形结合依赖
imageView.fitHeightProperty().bind(Bindings.createDoubleBinding(
() -> textField.getHeight() -
textField.getPadding().getTop() -
textField.getPadding().getBottom(),
textField.heightProperty(), textField.paddingProperty()));
imageView.fitWidthProperty().bind(imageView.fitHeightProperty());
textField.paddingProperty().bind(Bindings.createObjectBinding(
() -> new Insets(textField.getPadding().getTop(),
textField.getPadding().getRight(),
textField.getPadding().getBottom(),
textField.getPadding().getRight() * 2 + imageView.getFitWidth()),
imageView.fitWidthProperty(), textField.paddingProperty()));
我目前的做法是使用StackPane
举行TextField
,然后还加了ImageView
为StackPane
的孩子。该ImageView
需要知道如何调整自己,所以我已绑定了fitHeight
到TextField
的高度,在考虑TextField
的的填充。
ImageView
的fitWidth
然后绑定到它自己的fitHeight
。
最后,我需要让我的TextField
的文本向右偏移(因为图像阻止它),所以我再次做了另一个绑定取决于ImageView
的fitWidth
。
这与循环依赖,这导致堆栈溢出结束。有没有其他的方法可以不用硬编码TextField
的左边填充?
为什么你需要调整图像大小? –