RelativeLayout中的子视图不重叠

时间:2015-09-12 06:39:36

标签: android android-layout android-relativelayout

我在Android中设置了以下布局。我希望TextView在按钮的右下方重叠,作为计数器。

不是在按钮上重叠,而是在它下面的“下”圈。它永远不会在前台。

我知道我可以使用API​​ 21的Elevation属性,但我想要与早期的设备兼容。

我希望在TextView之后放置Button足以实现我想要的效果 - 无法理解为什么它没有达到预期的效果。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <Button
        android:layout_height="60dp"
        android:layout_width="60dp"
        android:id="@+id/chat_request"
        android:background="@drawable/chatbubble"
        android:duplicateParentState="true"
        android:enabled="false"
        android:layout_alignWithParentIfMissing="false"
        android:focusable="false" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="1"
        android:id="@+id/request_counter"
        android:layout_alignParentRight="false"
        android:layout_alignParentEnd="false"
        android:background="@drawable/count_background"
        android:textColor="@color/white"

        android:layout_gravity="bottom|right"
        android:layout_below="@+id/chat_request"
        android:layout_alignRight="@+id/chat_request"
        android:layout_marginTop="-15dp"
        android:duplicateParentState="true"
         />

</RelativeLayout>

2 个答案:

答案 0 :(得分:0)

试试这个:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/chatbubble">

<Button
    android:layout_height="60dp"
    android:layout_width="60dp"
    android:id="@+id/chat_request"
    android:duplicateParentState="true"
    android:enabled="false"
    android:layout_alignWithParentIfMissing="false"
    android:focusable="false"
    android:background="@color/transparent"/>



<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="1"
    android:id="@+id/request_counter"
    android:layout_alignParentRight="false"
    android:layout_alignParentEnd="false"
    android:background="@drawable/count_background"
    android:textColor="@color/white"

    android:layout_gravity="bottom|right"
    android:layout_below="@+id/chat_request"
    android:layout_alignRight="@+id/chat_request"
    android:layout_marginTop="-15dp"
    android:duplicateParentState="true"
    />

 </RelativeLayout>

答案 1 :(得分:0)

这是因为我使用的是Button元素。 Button始终取代任何其他元素,无论它位于RelativeLayout上。

然而,当我将该元素更改为ImageButton时,它采用了我期望的行为:它在布局中的前一个UI元素上方重叠,如果它位于XML中这些元素的下面。