這是關於javaFX8的問題。
我有listView和自定義cellFactory。
每一個細胞是: 是:
1.AnchorPane
1.1.Circle
1.1.AnchorPane
1.1.1.Label
1.1.2.Label
1.1.3.TextFlow
ListCell高度取決於TextFlow的大小
因此,在updateItem menthod我這樣做
Text text = new Text();
text.textProperty().setValue(data.getMessage());
....
messageTextFlow.getChildren().addAll(text);
....
double height = (messageTextFlow.getChildren().get(0)).getLayoutBounds().getHeight() + 28;
anchorPane.setPrefHeight(height);
但它不工作的第一次。該單元格的正確高度再次暴露,我將更新此列表視圖。
我該如何解決這個問題?是否有任何方法來連接TextFlow高度和ListCell高度?
謝謝!
請加[最小,完整,可驗證的示例](HTTP://計算器.com/help/mcve)給你的問題。這使人們更容易調試併爲您的問題提供解決方案。 – ItachiUchiha
當你想像這樣管理佈局時,不要使用'AnchorPane's。 [佈局窗格](http://docs.oracle.com/javase/8/javafx/layout-tutorial/builtin_layouts.htm#JFXLY102)已經爲您管理佈局,例如,將這兩個標籤放入一個'HBox'中,將'HBox'和'TextFlow'放入一個'VBox'中,然後在另一個'HBox'中放入'Circle'和'VBox'。在所有佈局窗格上設置適當的對齊方式。 (正如所建議的那樣,如果你想得到更準確的答案,你需要創建併發佈一個[MCVE]。) –