帧布局(FrameLayout)
2017-10-05 本文已影响903人
a紫星
今天来说下 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就介绍到这里
代码只会按照你所写的方式运行,不会按照你想的方式运行