У меня есть FrameLayout в который я кладу Button и FrameLayout с целью перекрыть изображением (будущей анимацией, поэтому и FrameLayout) кнопку. Предпросмотр все отображает верно:
Однако, при запуске кнопка перекрывает "FrameLayout":
Вот разметка:
Почему Button перекрывает FrameLayout (хотя с аналогичной... конструкцией, в этой же разметке, такого не было. И как все же расположить FrameLayout поверх Button?
Ответ
Вся соль здесь в таком атрибуте кнопки как 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
Комментариев нет:
Отправить комментарий