帧布局(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>
效果.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就介绍到这里

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,011评论 25 709
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,843评论 1 92
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,669评论 0 17
  • 太长不看版:在 Android UI 布局过程中,遵守一些惯用、有效的布局原则,可以制作出高效且复用性高的 UI。...
    Mupceet阅读 3,934评论 0 14
  • “我把青春献给了爱情,但我没有第二次青春了,站在十字路口,我对自己说。再不走,就没有机会了,我要去更高的地方看一眼...
    melodyforsmile_阅读 287评论 0 0