У меня есть ListView с пользовательским ListCellFactory. В моей реализации CustomListCell я использую setGraphic, чтобы установить графику элемента списка в GridPane, но я не могу не позволить GridPane заполнить всю ширину ListView. Ниже приведена краткая версия моего кода:
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 из другого сообщения моя GridPane не будет расти! Независимо от того, какую комбинацию ограничений макета я использую, она выглядит следующим образом:
GridPane должен расширяться до полной ширины ListCell (я хочу добавить кнопку удаления в правом нижнем углу). Я схожу с ума, пожалуйста, помогите!
.list-cell { -fx-padding: 0.25em 0.583em 0.25em 0.583em; }
. Поэтому вам просто нужно переопределить его, установивsetStyle("-fx-padding: 0;");
в конструкторе ячеек. 11.01.2015