Android【布局管理器】——帧布局FrameLayout

帧布局FrameLayout在Android的五大布局中是最简单的布局方式,在需要布局中的控件有重叠的情况下才使用。

FrameLayout是一个轻量级的布局控件,Relativelayout能完全的实现FrameLayout的功能,所以在选择的时候就需要自己好好设计了。

在使用FrameLayout的时候,发现布局里面的控件设置layout_margin类的属性没有效果。后来百度一下才知道FrameLayout中的控件layout_margin设置要依赖layout_gravity属性,否则layout_margin设置无效。

layout_gravity有好几个值可以设置,具体要设置哪一个呢?其实layout_gravity可以理解为设置控件的参考点,控件最终显示位置最终由layout_gravity和layout_margin共同决定。

如果想要控件正常显示,可以将控件的layout_gravity设置为top,以屏幕左上角为参考点。

[html] view
plain
copy

  1. <FrameLayout
  2. android:layout_width="fill_parent"
  3. android:layout_height="fill_parent">
  4. <!-- layout_gravity设置为top,以屏幕左上角为参考点 -->
  5. <TextView
  6. android:layout_width="100dp"
  7. android:layout_height="100dp"
  8. android:layout_gravity="top"
  9. android:background="#FF0000"
  10. android:gravity="center"
  11. android:text="1"
  12. android:textSize="30sp" />
  13. <TextView
  14. android:layout_marginLeft="80dp"
  15. android:layout_marginTop="80dp"
  16. android:layout_width="100dp"
  17. android:layout_height="100dp"
  18. android:layout_gravity="top"
  19. android:background="#00FF00"
  20. android:gravity="center"
  21. android:text="2"
  22. android:textSize="30sp" />
  23. <TextView
  24. android:layout_marginLeft="160dp"
  25. android:layout_marginTop="160dp"
  26. android:layout_width="100dp"
  27. android:layout_height="100dp"
  28. android:layout_gravity="top"
  29. android:background="#0000FF"
  30. android:gravity="center"
  31. android:text="3"
  32. android:textSize="30sp" />
  33. </FrameLayout>

view
plain
cop

改变所有的控件的参考点,layout_gravity设置为center,看看效果

另外FrameLayout在一些控件动画中和一些复杂的UI设计大有用处,还是挺不错的。

时间: 2024-12-19 18:46:14

Android【布局管理器】——帧布局FrameLayout的相关文章

android的布局管理器

理论上通过setContentView(view)能够把一个view设置到activity中,但当你有很多个view控件的时候,就需要用android的布局管理器来管理view控件了. android布局管理器有以下几种: 1.线性布局 LinearLayout 2.框架布局 FrameLayout 3.表格布局 TableLayout 4.相对布局 RelativeLayout 5.绝对布局 AbsoluteLayout 一.LinearLayout 线性布局管理器 线性布局分为水平布局和垂直

布局管理器(章节摘要)

1,使用布局管理器可以对组件的布局进行管理,在Android中提供了4种布局管理器:LinearLayout,FrameLayout,TableLayout和RelativeLayout. 2,所有的布局管理器既可以通过配置文件实现,也可以通过Activity程序动态生成. 3,表格布局管理器可以以表格的形式对数据显示进行排列,在列表操作中使用较多. 4,布局管理器可以通过嵌套实现更加复杂的布局显示. 5,在Android 2.3.3之后不再支持绝对布局管理器.布局管理器(章节摘要)

QT开发(二十一)——QT布局管理器

QT开发(二十一)--QT布局管理器 一.布局管理器简介 QT中使用绝对定位的布局方式无法自适应窗口的变化. QT中提供了对界面组件进行布局管理的类,用于对界面组件进行管理,能够自动排列窗口中的界面组件,窗口大小变化后自动更新界面组件的大小. QLayout是QT中布局管理器的抽象基类,通过对QLayout的继承,实现了功能各异且互补的布局管理器. 布局管理器不是界面组件,而是界面组件的定位策略. 任意容器类型的组件都可以指定布局管理器. 同一个布局管理器管理中的组件拥有相同的父组件,在设置布局

Java之GUI编程(二)——布局管理器

在上篇博客Java之GUI编程(一)中我已经对GUI编程的组件和事件做了简单介绍了,现在来看看另外一部分关于组件在各个平台是如何做到仍能保持自己合理的位置大小以及外观的. 已经说了Java是跨平台运行的,但是不同的平台对于点及坐标的定义不完全相同.而且屏幕的解析度分辨率不同也会造成位置的变化,为了确保每个组件的相对位置和大小以及外观,java就设计了布局管理器. 布局管理器是对容器中的元素进行管理,按照一定的规则排放容器里面的元素.它控制了组件的摆放. 布局管理器分类: FlowLayout:浮

Java FlowLayout、BorderLayout、GridLayout、GridBagLayout、CardLayout布局管理器

作者:卿笃军 原文地址:http://blog.csdn.net/qingdujun/article/details/40985027 一.FlowLayout布局管理器 FlowLayout() 构造一个新的 FlowLayout,它是居中对齐的,默认的水平和垂直间隙是 5 个单位. FlowLayout(int align) 构造一个新的 FlowLayout,它具有指定的对齐方式,默认的水平和垂直间隙是 5 个单位. FlowLayout(int align, int hgap, int

JavaSE学习55:GUI编程之布局管理器

一布局管理器概述 Java语言中,提供了布局管理器类的对象可以管理. 管理Component对象在Container对象中的布局,不必直接设置Component对象位置和大小.每个Container对象 都有一个布局管理器对象,当容器需要对某个组件进行特定或判断其大小尺寸时,就会调用其对应的布局管理器,调 用Container对象的setLayout()方法改变其布局管理器对象. AWT提供了5种布局管理器,分别为: FlowLayout布局管理器 BorderLayout布局管理器 GridL

swing布局管理器简介

转载:http://stevencjh.blog.163.com/blog/static/1218614612010101775336729/ swing布局管理器简介 一 .BorderLayout布局管理器:BorderLayout 也是一种非常简单的布局策略,它把容器内的空间简单地划分为东.西.南.北.中无个区域,没加入一个组件都应该指明把这个组件加在哪个区域中. BorderLayout是顶层容器( JFrame, JDialog, 和 JApplet )的默认布局管理器.有五个位置组件

Qt布局管理器(详解)

1.存在的问题 (1)目前的GUI开发方式:绝对定位 --直接在像素级指定各个组件的位置和大小 void QWidget::move(int x, int y) void QWidget::resize(int w, int h) (2)问题 --组件位置和大小无法自适应父窗口的变化 2.布局管理器 (1)解决方案:布局管理器 --提供相关的类对界面组件进行布局管理 @1:能够自动排列窗口中的界面组件 @2:窗口变化后自动更新界面组件的大小 (2)QLayout是Qt中布局管理器的抽象基类 (3

10.4 使用布局管理器3(CardLayout)

3)CardLayout布局管理器 CardLayout布局管理器以时间而非空间来管理它里面的组件,它将加入容器的所有组件看成一叠卡片,每次只要最上面的那个Component才可见.就好像一副扑克牌,它们叠在一起,每次只有最上面的一张扑克牌可见. CardLayout提供了如下两个构造器: 1)CardLayout():创建默认的CardLayout布局管理器. 2)CardLayout(int hgap,int vgap):通过指定卡片与容器左右边界的间距(hgap).上下边界(vgap)的间

【Java Swing探索之路系列】之三:Java Swing布局管理器组件

作者:郭嘉 邮箱:[email protected] 博客:http://blog.csdn.net/allenwells github:https://github.com/AllenWell 一 BorderLayout BorderLayout是一种简单的布局策略,可以将其看作一个组件.它把容器分为东.南.西.北.中5个区域,每个组件将占据某个区域.而 这5个区域分别被命名为NORTH, WEST, EAST, CENTER, SOUTH,它们都被定义为静态 常量.静态常量可以直接引用,如