帧布局(FrameLayout)

作者: a紫星 | 来源:发表于2017-10-05 21:10 被阅读903次

    今天来说下 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>
    
    效果.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就介绍到这里

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

    相关文章

      网友评论

        本文标题:帧布局(FrameLayout)

        本文链接:https://www.haomeiwen.com/subject/tnpkyxtx.html