Как принести ImageView перед кнопкой в ​​android 5?

В версиях android, предшествующих lolipop, работает следующий код, и перед кнопкой отображается изображение. Но в android 5 изображение просматривается за кнопкой.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Button android:id="@+id/button" android:layout_width="210sp" android:layout_height="210sp" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:background="@drawable/round_button" android:drawablePadding="10dip" android:gravity="center_vertical|center_horizontal" /> <ImageView android:id="@+id/imageView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:contentDescription="@string/torch" android:src="?attr/imageview" /> </RelativeLayout> 

Solutions Collecting From Web of "Как принести ImageView перед кнопкой в ​​android 5?"

Проблема заключается в том, что свойство elevation Android 5.0. По-видимому, упорядочение Z-оси RelativeLayout привязано к elevation . Если оба виджета имеют одинаковое elevation , RelativeLayout определит порядок Z-оси – вы можете видеть, что если бы вы, например, переключили свой макет на оба виджета Button . Однако, если у одного виджета ( Button ) есть elevation , а другого виджета ( ImageView ) нет, elevation будет иметь приоритет.

Вы можете удалить elevation Button через android:stateListAnimator="@null" или определить собственный пользовательский аниматор . Или вы можете добавить некоторое elevation в свой ImageView чтобы увеличить его на оси Z, чем Button .

Значения высоты и сдвига кнопок определяются в рамках, как показано ниже:

 <!-- Elevation when button is pressed --> <dimen name="button_elevation_material">1dp</dimen> <!-- Z translation to apply when button is pressed --> <dimen name="button_pressed_z_material">2dp</dimen> 

Источник

Как объяснено в CommonsWare, установите переводZ ImageView выше, чем значение Button даст результат, как ожидалось.