RelativeLayout zorder棒棒糖

Not*_*bad 8 android android-layout android-5.0-lollipop

我有一个小的布局在API 19:4.2.2上正常工作,但不能使它在API 21:5.0.1上工作.

这是布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <Button
        android:id="@+id/start_button"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:textStyle="bold"
        android:textSize="30sp"
        android:background="@color/start_button_bg"
        android:textColor="@color/start_button_text"
        android:text="@string/start_process"/>

    <TextView
        android:id="@+id/pro_icon"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="10dp"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:textColor="@android:color/white"
        android:background="@drawable/pro_icon"
        android:text="PRO"
        android:gravity="center"
        android:textAppearance="?android:attr/textAppearanceMedium"/>

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

真的很简单.我只想让textview在相对布局中覆盖Button.我知道相对布局按照它们在xml中添加的顺序堆栈视图,但这似乎在lollipop上不起作用.我无法通过按钮呈现TextView.任何的想法?

干杯.

Com*_*are 15

A 默认情况下Button安装elevation在Android 5.0+上; 一个TextView没有.小部件的高程将基本上覆盖由a RelativeLayout或a 设置的Z轴排序FrameLayout.

你的选择是:

  1. 重新设计您的UI,使其不在Z轴上订购小部件,或

  2. 替换StateListAnimator你Button的修改或删除elevation动画,或

  3. 尝试将TextViewvia 的高程更改android:elevation为高于Button