У меня есть приложение, которое имеет minSdk из 15, и я разрабатываю все ошибки, связанные с обновлением lollipop. Наше программное обеспечение очень сложное и оно динамически создает представления с использованием пользовательских групп представлений, а затем массива элементов, которые явно задаются и помещаются внутри группы. Я столкнулся с проблемой, когда, например, у меня будет ViewGroup, а первый дочерний объект - Button ... эта кнопка имеет размер, чтобы заполнить представление (не кликабельно). Второй ребенок - это FrameLayout, содержащий один вид. Этот единственный вид является видеообъектом. Во всех предыдущих версиях Android это работает отлично. FrameLayout накладывается над кнопкой (которая выступает в качестве фона), и видео находится внутри рамки. Вы можете взаимодействовать с видео без каких-либо проблем.Иерархия дочерней иерархии ViewGroup android lollipop?
Что-то изменилось в леденец - внезапно, хотя кнопка отображается как элемент индекса 0, она кладет поверх остальных детей ... поэтому я не могу добраться до видео внизу. Если я удалю этот элемент кнопки, видео будет отображаться и воспроизводится просто отлично ... У меня нет проблем с этим взаимодействием.
Я запустил приложение в UI Automator Viewer, чтобы убедиться, что я действительно настраивал пользовательский интерфейс, как я ожидал (помните, что весь вид динамически визуализируется во время выполнения с использованием средств изображения/видео и файлов конфигурации xml).
Я не могу использовать код, поскольку это проприетарное программное обеспечение, но я работаю над небольшим тестовым проектом, чтобы узнать, могу ли я вручную воссоздать проблему со статическими объектами. Как только я это запустил, я обязательно обновлю этот билет. На данный момент, вот скриншот иерархии:
https://goo.gl/photos/a8on9CJDnN66XYnV6
Обратите внимание, выделенный объект, это обычай ViewGroup, дети под ним то, что я описываю выше.
Кто-нибудь знает об изменении Lollipop, который повлияет на порядок вещей? Ранее я обнаружил, что если у вас есть отключенный объект, но у него нет выделенного состояния, назначенного этому объекту, он станет невидимым, предыдущие версии просто использовали одну из других чертежей состояния ... что-то, что имеет смысл, и было очень легко исправить, но этот объект не невидим ... поэтому он должен быть чем-то другим.
Любое направление было бы рад. ~ A
UPDATE - ИСПРАВЛЕНО
С помощью @alanv и @BladeCoder я понял, эта функциональность была в связи с новым подъемом особенности конструкции материала. Я был в состоянии исправить мой конкретный вопрос по первой проверке какой версии андроида устройство использует, и если леденец, я просто добавить новое свойство к кнопке:
андроида: stateListAnimator = «@ нулю»
Это предотвращает переопределение моей явной дочерней иерархии ОС.
Вы играете с возвышением взглядов каким-то образом? – dominus
Кнопки имеют высоту по умолчанию из-за их аниматора состояний. Представления с возвышением z-упорядочены над видами сестры. Вы можете удалить высоту, установив 'android: stateListAnimator =" @ null "'. Если вы не хотите, чтобы кнопка отображалась, вы должны изменить свою видимость, чтобы исчезнуть или невидимо. – alanv