今天來說下 Android中幾大布局中的FrameLayout, FrameLayout是幾個布局中最簡單的一個布局,我通常喜歡稱它為最純凈的布局。在這個布局中,整個界面被當成一塊空白備用區域,所有的子元素都不能被指定放置的位置,它們統統放于這塊區域的左上角,并且后面的子元素直接覆蓋在前面的子元素之上,將前面的子元素部分和全部遮擋。相同層級布局中 FrameLayout的效率也是最高的,占用內存相對來說也是較小的。
先上布局文件
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white">
<TextView
android:layout_width="300dp"
android:layout_height="300dp"
android:gravity="center"
android:background="@android:color/holo_blue_bright"
android:text="我是第一層"/>
<TextView
android:layout_width="150dp"
android:layout_height="140dp"
android:gravity="center"
android:background="@android:color/holo_green_light"
android:text="我是第二層"/>
</FrameLayout>
效果.png
幀布局沒有什么特別要介紹的,這塊看著好像元素都能重疊顯示,是不是和
RelativeLayout有些相似呢?其實不然,RelativeLayout那些子元素位置的屬性在FrameLayout中是不能使用的。
- FrameLayout一般在設置Fragment的顯示區域時使用。
- 還有就是在Android中每一個Activity的跟布局都是一個FrameLayout
Q/A
- Q 為啥FrameLayout介紹的這么簡單?
A 因為FrameLayout本來就簡單- Q 如果給Fragment設置容器的話我用RelativeLayout或者LinearLayout不是也可以嗎?為啥還要使用FrameLayout?
A 首先使用RelativeLayout或者LinearLayout是可以的,但是在開始的時候也說了 FrameLayout的效率是最高的,占用內存相對來說也是較小的。
好了FrameLayout就介紹到這里
代碼只會按照你所寫的方式運行,不會按照你想的方式運行