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
的左邊填充?
爲什麼你需要調整圖像大小? –