Как изменить размер (размер вниз) окна (этап), когда одна из панелей стала невидимой в JavaFX? [Дубликат]

Это была большая головная боль для меня. В моем случае ошибка появилась после настройки «Службы Google Play» в Android Studio (установка + build.gradle config). Это, в свою очередь, требует minsdk> 7, но ошибка очень неясна в этом (на самом деле жалоба на это появляется только как «информация»). В любом случае .. при изменении minsdk до 8 как в файле манифеста, так и в файле build.gradle и при восстановлении проекта ошибка исчезла.

Итак, общий совет об этом, если я могу обобщить - у вас, вероятно, есть некоторые проблемы в вашем файле манифеста или в каком-либо другом файле конфигурации, что предотвращает правильную сборку. Попытайтесь найти действительно тяжелый отчет об ошибке, даже сообщения под названием «информация» для любого намека на то, что это может быть ...

47
задан Cœur 26 April 2017 в 16:31
поделиться

3 ответа

Так как он невидим, он не будет перемещаться вверх. Вы должны удалить его с помощью чего-то типа:

// remove
vbox.getChildren().remove(...)

После удаления элемента, который вы хотите невидимым, другой элемент должен перейти в начало.

5
ответ дан breaktop 18 August 2018 в 11:51
поделиться
  • 1
    AFAIK, манипулируя графиком сцены, дороже, чем установка видимого значения false. – Puce 14 August 2017 в 21:38
  • 2
    Хотя я не уверен в стоимости управляемой недвижимости. – Puce 14 August 2017 в 21:47

Node.setVisible(boolean) просто переключает состояние видимости Node.

Чтобы исключить Node из расчётов макета родителя, вы также должны установить его управляемое состояние, вызвав Node.setManaged(false) .

Если вы хотите, чтобы управляемое состояние автоматически обновлялось вместе с видимостью, вы можете использовать привязку, как указано @jewelsea: node.managedProperty().bind(node.visibleProperty());

104
ответ дан eckig 18 August 2018 в 11:51
поделиться
  • 1
    Связывание также работает , например, node.managedProperty().bind(node.visibleProperty()); – jewelsea 17 February 2015 в 22:46
  • 2
    Отлично! Исходя из Adobe / Apache Flex, мне действительно не удалось переключиться на includeInlayout (что делает то же самое здесь). Flex все еще имеет более интуитивное имя, но это здорово, что мы можем легко это сделать. – User 7 October 2016 в 20:43

Вместо того, чтобы скрывать vbox, вы должны удалить его из «Дети», и если вы хотите его снова показать, снова добавьте vbox.

0
ответ дан Juce 18 August 2018 в 11:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: