我有一個XML佈局,我在一個LinearLayout中嵌套了一個FrameLayout,並試圖在FrameLayout之上堆疊一個兄弟查看組。它根本不顯示兄弟觀看組,但只是FrameLayout。我希望得到一些幫助,理解爲什麼將根ViewGroup替換爲RelativeLayout會產生預期的輸出。爲什麼LinearLayout不能正確顯示嵌套的FrameLayout?
這裏的佈局:
<?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">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/mainFrameLayout"
android:background="#787878"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:id="@+id/ImageView01"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:src="@drawable/download"
android:adjustViewBounds="true"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="#000"
android:textSize="40sp"
android:text="Top text" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:gravity="right"
android:text="bottom_text"
android:textColor="#fff"
android:textSize="50sp" />
</LinearLayout>
</LinearLayout>
我只把自己看到的FrameLayout填充屏幕。當我將根ViewGroup更改爲使用layout_height和layout_width定義的RelativeLayout爲「match_parent」時,我得到了我的預期輸出,其中ImageView和兩個TextView都顯示在FrameLayout的頂部。我很困惑它是如何工作的,因爲我沒有爲子ViewGroups/View指定任何RelativeLayout參數,如「bottomof」或「topof」。
是否存在RelativeLayout具有LinearLayout不具有的調整尺寸或重量分佈?我一直在網上查找,但不幸的是還沒有找到答案。
謝謝!
完美的解釋,謝謝你的幫助frozenkoi! – blkhatpersian
@frozenkoi +1用於闡明不同佈局之間的差異,並進一步描述RelativeLayout的默認行爲。謝謝! –