У меня есть ListView с пользовательским ListCellFactory. В моей реализации CustomListCell я использую setGraphic для установки графического элемента списка в GridPane, но я не могу позволить GridPane заполнить всю ширину ListView. Ниже приводится краткая версия моего кода:JavaFX Custom ListCell HGrow
class MyListCell extends ListCell<MyObject>
{
private final GridPane _myComponent;
public MyListCell()
{
...
setContentDisplay(ContentDisplay.GRAPHIC_ONLY); // does not help
//this.setPrefWidth(0); // does not help
myComponent.prefWidthProperty().bind(this.widthProperty()); // does not help
}
...
@Override
protected void updateItem(MyObject item, boolean empty)
{
...
setGraphic(_myComponent);
...
}
}
Даже с prefWidth ограничивающей от another post мой GridPane не будет расти! Независимо от того, какой комбинации ограничений макета я использую это выглядит следующим образом:
GridPane будет расширяться на всю ширину ListCell (я хочу, чтобы добавить кнопку удаления в днище правого угла). Я схожу с ума, пожалуйста, помогите!
Большое вам спасибо! Вы спасли мне часы (или дни)! Знаете ли вы, как удалить маржу сейчас (так что нет mpadding/margin? Sry Я новичок JavaFX :) – Crine
Стиль по умолчанию для ячеек определяется на modena.css:........................... -fx-padding. 0,25 г 0,583 г 0,25 г 0,583 мкм; } '. Поэтому вам просто нужно переопределить его, установив 'setStyle (" - fx-padding: 0; ");' в конструкторе ячейки. –
Большое спасибо !!! Теперь он отлично работает! Хорошего дня! – Crine