帧布局(FrameLayout)

今天来说下 Android中几大布局中的FrameLayoutFrameLayout是几个布局中最简单的一个布局,我通常喜欢称它为最纯净的布局。在这个布局中,整个界面被当成一块空白备用区域,所有的子元素都不能被指定放置的位置,它们统统放于这块区域的左上角,并且后面的子元素直接覆盖在前面的子元素之上,将前面的子元素部分和全部遮挡。相同层级布局中 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>

《帧布局(FrameLayout)》 效果.png

帧布局没有什么特别要介绍的,这块看着好像元素都能重叠显示,是不是和
RelativeLayout有些相似呢?其实不然,RelativeLayout那些子元素位置的属性在FrameLayout中是不能使用的。

  • FrameLayout一般在设置Fragment的显示区域时使用。
  • 还有就是在Android中每一个Activity的跟布局都是一个FrameLayout

Q/A

  1. Q 为啥FrameLayout介绍的这么简单?
    A 因为FrameLayout本来就简单
  2. Q 如果给Fragment设置容器的话我用RelativeLayout或者LinearLayout不是也可以吗?为啥还要使用FrameLayout?
    A 首先使用RelativeLayout或者LinearLayout是可以的,但是在开始的时候也说了 FrameLayout的效率是最高的,占用内存相对来说也是较小的。

好了FrameLayout就介绍到这里

代码只会按照你所写的方式运行,不会按照你想的方式运行

    原文作者:a紫星
    原文地址: https://www.jianshu.com/p/a169cce78340
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞