为什么我的相对布局占满了整个屏幕宽度?
我将相对布局指定为“wrap_content”,为什么它会占用整个屏幕空间。即使我说android:layout_width="fill_parent",输出也是相同的。请解释一下!
请启迪我!
编辑:我觉得我之前的问题表述不够清晰。对此感到抱歉。 当我在相对布局中有两个子视图时,其中一个左对齐父视图,另一个右对齐,并且相对布局的宽度为WRAP_CONTENT,则我期望布局的宽度只是2个按钮宽度的总和(这不是WRAP_CONTENT的意思吗?)。我知道还有其他实现所需UI的方法,但我只是想正确理解这些相对布局标记。
编辑2:我进行了一些实验,看起来如果我们使用Layout_AlighParentRight并将其父宽度设置为WRAP_CONTENT,则上部布局的宽度用于计算(就像下面的答案所指出的那样)。但是,如果我们只是使用Layout_alignParentLeft,那么它将按预期工作,布局宽度不会延伸到整个屏幕。感谢大家的帮助!
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#f00"
>
<Button
android:id="@+id/Button01"
android:text="Press Here"
android:layout_alignParentRight="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
<Button
android:id="@+id/Button02"
android:text="02"
android:layout_alignParentLeft="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
</RelativeLayout>
我将相对布局指定为“wrap_content”,为什么它会占用整个屏幕空间。即使我说android:layout_width="fill_parent",输出也是相同的。请解释一下!
请启迪我!
编辑:我觉得我之前的问题表述不够清晰。对此感到抱歉。 当我在相对布局中有两个子视图时,其中一个左对齐父视图,另一个右对齐,并且相对布局的宽度为WRAP_CONTENT,则我期望布局的宽度只是2个按钮宽度的总和(这不是WRAP_CONTENT的意思吗?)。我知道还有其他实现所需UI的方法,但我只是想正确理解这些相对布局标记。
编辑2:我进行了一些实验,看起来如果我们使用Layout_AlighParentRight并将其父宽度设置为WRAP_CONTENT,则上部布局的宽度用于计算(就像下面的答案所指出的那样)。但是,如果我们只是使用Layout_alignParentLeft,那么它将按预期工作,布局宽度不会延伸到整个屏幕。感谢大家的帮助!
wrap_content
的意思是“宽度与子元素占据的空间一致”。现在,如果你选取一个子元素并设置alignParentRight
,那么该元素应该会位于其父元素的最右侧。但是父元素有多宽呢?嗯,宽度与子元素占据的空间一致。换句话说,父元素将其宽度的决定权交给了子元素。而子元素不受父元素的限制,因此它们会一直延伸到最后 - 即父容器的边界。 - user519908