Сделать макет ограничения неприкосновенным - PullRequest
0 голосов
/ 04 марта 2020

У меня есть два макета, manageLayout и mainLayout. У них есть ограничения для родителей со всех сторон. Мне нужно в одно время иметь manageLayout в верхней части mainLayout, а в другой раз mainLayout в верхней части manageLayout. Конечно, есть смысл в использовании visibility = у одного из них, но мне нужен один макет на фоне другого. Проблема: макет на фоне обрабатывать события сверху макета. Как сделать нижний макет (и его элементы) неприкосновенным, когда поднялся другой макет? Изображение дерева макетов: LayoutTreeImg Пример кода, где я хочу отключить связь с более низким макетом: https://pastebin.com/PeL7u3YD (не только isSaveEnabled=false не имел никакого эффекта, но также isEnabled=false не имел никаких эффектов тоже)

Ответы [ 2 ]

0 голосов
/ 04 марта 2020

Если вам просто нужно объяснение.

После того, как вы инициализировали оба представления для mainLayout и manageLayout, вам нужно будет установить пустое значение onClickListener на обоих из них. По сути, макеты должны получить щелчок, но ничего не делать. Таким образом, вы можете заблокировать компоновку и виджеты под видом на передней панели от нажатия.

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

Дайте мне знать, если это работает для вас, или у вас есть какие-либо проблемы по этому поводу.

0 голосов
/ 04 марта 2020

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

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