Страницы

Поиск по вопросам

пятница, 31 января 2020 г.

FrameLayout не отображается поверх Button

#android #android_layout


У меня есть FrameLayout в который я кладу Button и FrameLayout с целью перекрыть
изображением (будущей анимацией, поэтому и FrameLayout) кнопку. Предпросмотр все отображает
верно:



Однако, при запуске кнопка перекрывает "FrameLayout":



Вот разметка: 

        

            


Ответы

Ответ 1



Вся соль здесь в таком атрибуте кнопки как android:elevation. Кнопка в API > 21 имеет такой атрибут android:stateListAnimator, который по умолчанию ссылается на файл button_state_list_anim_material.xml со следующим содержанием: ... ... Видим что в обычном state_enabled-состоянии атрибут elevation имеет значение @dimen/button_elevation_material, которое равно 2dp. Вывод: если мы хотим что бы какое то view перекрывало кнопку, необходимо для него(view!) использовать android:elevation >= 2dp.

Ответ 2



Оберните кнопку и фрейм дополнительно отдельными лайатуами, я уже у себя ловил такой баг, когда поверх Button на андройде 5.0 и выше вью которая должна была рисоваться поверх не было видно. Пока не добрался до причины, но костыльно решено было вот так.

Комментариев нет:

Отправить комментарий