与此问题类似 A MATCH_PARENT view inside a WRAP_CONTENT view
一般来说,我理解上述问题的答案。但是,我不能将答案应用于我的设计示例(下面),并且LinearLayout
和RelativeLayout
容器中的布局行为似乎有所不同。
首先,我使用LinearLayout
作为容器viewA,使用Button as child viewB, The viewA is set to be
" wrap_content" and viewB being
" march_parent" .`结果是左上角的小按钮。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<!-- container View A -->
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#FFFFFF"
android:orientation="vertical">
<!-- child View B -->
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="test" />
</LinearLayout>
</LinearLayout>
然后我尝试了RelativeLayout
作为容器视图A,我发现按钮占据了整个窗口。所以我的问题是,在所有布局属性相同的情况下,为什么会出现这样的差异?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<!-- container View A changed to RelativeLayout -->
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#FFFFFF"
android:orientation="vertical">
<!-- child View B -->
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="test" />
</RelativeLayout>
</LinearLayout>