TornadoFX (JavaFX): как выполнить действие, когда представление становится видимым - PullRequest
0 голосов
/ 12 февраля 2020

Я новичок в TornadoFX, и у меня возникают проблемы с обнаружением, является ли представление видимым или нет
Мой сценарий: у меня есть представления с пользовательскими элементами меню, я уже добавил каркас, чтобы убедиться, что все они добавлены к моему главному меню. Теперь я хочу сделать их видимыми / невидимыми, если данный вид виден пользователю. Мои представления (в данном случае) являются частью вкладок в панели вкладок. похоже на ...

root = tabpane {
  tab {
    content = MyView.root
...

Я пробовал

root.focusedProperty().onChange { state -> menu.isVisible = state }

Это работает, когда я нажимаю на представление (в данном случае это представление списка), но это представление не фокусируется автоматически, когда Я выбираю вкладку. Я также пробовал

root.visibleProperty().onChange { state -> menu.isVisible = state }

, но это свойство не изменяется, когда представление отображается в виде вкладки (я предполагаю, что это свойство устанавливается, только если я вручную показываю / скрываю представление)

Я мог бы переместить логи c на саму вкладку, но это нарушает инкапсуляцию.
Представление не должно знать, что оно является частью вкладки, а вкладка не должна знать эту часть ее содержимого. дерево требует запуска

Есть ли свойство, которое я могу использовать (или другой механизм), чтобы определить, может ли пользователь видеть представление, т. е. находится ли представление наиболее высоко внутри приложения?

Как отдельный вопрос, это правильный подход или есть встроенный способ достижения динамических c меню? - Это то, что я воспринимал как должное. net WPF

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...