在相同的父布局下,如何使match_parent元素的大小遵循wrap_content元素?

时间:2017-07-31 04:35:47

标签: android xml

在html中,如果我想使用蓝色叠加层来完全覆盖黄色横幅,我可以这样做:



<div style="position:relative;display:table;">
    <div style="background-color:yellow;font-size:30px;">TESTING<div/>
    <div style="z-index:1;position:absolute;top:0px;left:0px;width:100%;height:100%;background-color:blue;opacity:0.5;display:inline-block;"></div>
</div>
&#13;
&#13;
&#13;

蓝色叠加的大小可以跟随黄色横幅,尽管我不知道它的实际px。

我想对它的android实现相同的效果,我试过了:

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
    android:background="#FFFF00"
    android:textSize="30dp"
    android:id="@+id/textview"
    android:text="TESTING"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
<TextView
    android:alpha="0.5"
    android:background="#0000FF"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignBottom="@+id/textview"
</RelativeLayout>

但是蓝色叠加层的宽度并没有跟随封闭的wrap_content元素,即使我设置了android:layout_alignBottom:

enter image description here

我怎样才能获得与html相同的效果?

2 个答案:

答案 0 :(得分:1)

如果我正确理解您的需求,那么您肯定在寻找android:layout_alignEnd

根据文档

android:layout_alignEnd:使此视图的结束边缘与给定锚点视图ID的结束边缘匹配。

因此,您可以在第二个textView

中使用它
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">

<TextView
    android:id="@+id/textview"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="#FFFF00"
    android:text="TESTINGsd"
    android:textSize="30dp" />

<TextView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignBottom="@+id/textview"
    android:layout_alignEnd="@+id/textview"
    android:alpha="0.5"
    android:background="#0000FF"/>

输出:

enter image description here

答案 1 :(得分:0)

使用布局,任何布局

  • android:layout_width =“wrap_content”

  • 机器人:layout_height = “WRAP_CONTENT”

属性。然后添加背景

  • 机器人:背景= “#0000FF”

将TextView放在其中。

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

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#0000FF"
        >

        <TextView
            android:background="#FFFF00"
            android:textSize="30dp"
            android:id="@+id/textview"
            android:text="TESTING"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    </RelativeLayout>
</RelativeLayout>