转自:http://blog.csdn.net/yihui823/article/details/6702273
FrameLayout是最简单的布局了。所有放在布局里的控件,都按照层次堆叠在屏幕的左上角。后加进来的控件覆盖前面的控件。
在FrameLayout布局里,定义任何空间的位置相关的属性都毫无意义。控件自动的堆放在左上角,根本不听你的控制。
看以下的例子:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="50dip"
android:textColor="#ffffff"
android:text="第一层"/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="40dip"
android:textColor="#ffff00"
android:text="第二层"/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="30dip"
android:textColor="#ff00ff"
android:text="第三层"/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="20dip"
android:textColor="#00ffff"
android:text="第四层"/>
</FrameLayout>
效果如下图:layoutpic001
变化1
我们现在来尝试改变一下他们的位置。把第一个和第二个文本框改成:
<TextView
android:id="@+id/tv1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="50dip"
android:textColor="#ffffff"
android:text="第一层"/>
<TextView
android:id="@+id/tv2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="40dip"
android:textColor="#ffff00"
android:layout_toRightOf="@id/tv1"
android:text="第二层"/>
也就是说,让第二个文本框放在第一个文本框的右边。我们来看看效果。看到了没?还是一样的不变吧。
变化2
我们来尝试下android:gravity属性。把第三个文本框改成:
<TextView
android:id="@+id/tv3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="30dip"
android:textColor="#ff00ff"
android:gravity="right"
android:text="第三层"/>
看看效果如何?天哪!竟然没有覆盖,而是错开了!!!
layoutpic002
首先呢,我们不要大惊小怪。这个现象并不说明FrameLayout失效了。gravity属性,是控制控件内部文本的格式的。而我们看我们控件的宽的属性是什么?是“fill_parent”,也就是说,我们文本框的宽度就是屏幕的宽度。那么android:gravity="right"文本靠右,而文本框本身还是左上堆叠在一起的。不信,我们再来改改:
<TextView
android:id="@+id/tv3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="30dip"
android:textColor="#ff00ff"
android:gravity="right"
android:text="第三层"/>
我们让第三个文本框的宽度自适应,也就是保证显示全文字即可。这个时候看一下效果呢?是不是打回原形啦?哈哈哈。
变化3
我们再来试试” android:layout_centerVertical”属性。把第四个文本框改成:
<TextView
android:id="@+id/tv4"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="20dip"
android:textColor="#00ffff"
android:layout_centerVertical="true"
android:text="第四层"/>
效果如何?没任何效果!
总结一下,经过以上的3个实验,我们知道FrameLayout根本无法控制他的子控件的位置。所有的控件都是左上对其。但是控件本身是可以控制自己内部的布局的。所以利用透明,也是可以完成一些简单的功能的。例如屏幕四个角各显示一些文字(是显示文字,没法放置控件)。因为每一层覆盖下一层的时候,如果用透明背景,则下一层不会被背景覆盖。
什么是透明背景?这个……说来话长啦。偷个懒,下次写一下透明的处理。
是不是有人会问,这么简单的Layout有什么用?我想还是有它存在的价值的。
当你需要自己写一个View的时候,在View里面已经完成了你的逻辑(例如游戏^_^),那么这个View只需要一个容器放置,就可以使用FrameLayout了。虽然用其他的布局也可以,但是用最简单的不是更省系统资源么。
相关推荐
Android中常用的5大布局方式有以下几种:...线性布局是Android开发中最常见的一种布局方式,它是按照垂直或者水平方向来布局,通过“android:orientation”属性可以设置线性布局的方向。属性值有垂直(vertical)和水平
线性布局是最基本也是最常用的布局方式之一。它会按照垂直方向(vertical)或水平方向(horizontal)排列子视图。在垂直方向排列时,每个子视图依次排列在上一个视图的下方;在水平方向排列时,每个子视图依次排列...
### Android六大布局详解 #### 一、基本理论 在Android应用开发中,界面设计是非常重要的一个环节,良好的界面布局能够显著提升用户体验。Android系统提供了多种布局类型来满足不同场景下的需求,下面将详细介绍六...
### Android界面布局详解 在Android应用开发中,创建直观且响应迅速的用户界面(UI)是至关重要的。本文将深入探讨Android系统提供的五种基本布局类型:LinearLayout(线性布局)、TableLayout(表格布局)、...
### Android布局详解 #### 一、概述 在Android应用程序开发中,布局是构建用户界面的基础。良好的布局设计能够显著提升用户体验。本文将详细介绍Android中的五种常见布局:FrameLayout(框架布局)、LinearLayout...
帧布局(FrameLayout)是Android布局管理器的一种,它的设计思想简单直观,主要用于展示单个或少量的组件,尤其适用于需要元素叠加的情况。在FrameLayout中,所有的子视图(如TextView、ImageView等)默认都会放置在...
0302_TableLayout`、`android_0304_RelativeLayout`、`android_0303_FrameLayout`可能对应着分别讲解这四种布局的示例代码或教程资源,通过学习这些实例,开发者可以更好地理解和掌握Android布局的实际应用。...
Android提供了多种布局类型,如LinearLayout(线性布局,水平或垂直排列)、RelativeLayout(相对布局,基于相对位置放置组件)、FrameLayout(帧布局,按顺序叠加组件)、TableLayout(表格布局)等。每种布局都有...
"android 五大布局详解" Android 中的五大布局对象是指 FrameLayout、LinearLayout、AbsoluteLayout、RelativeLayout 和 TableLayout。这些布局对象是 Android 应用程序开发中最基本和最常用的布局方式。 ...
Android布局详解【图文】 在Android应用开发中,布局(Layout)是构建用户界面的基础,它决定了各个组件在屏幕上的排列方式和位置。本篇将详细讲解Android中的五种主要布局:线性布局(Linear Layout)、相对布局...
总的来说,FrameLayout是Android布局体系中的一个重要组成部分,对于初学者而言,理解和掌握其用法是构建各种复杂界面的基础。通过熟练运用FrameLayout的属性和特性,开发者可以创建出符合需求的简单或复杂的界面...
此外,Android还提供了GridLayout、FrameLayout、TableLayout等多种布局,每种都有其特定的适用场景。 在"calculator01"这个文件中,可能是提供了一个简单的计算器应用示例,使用了布局来排列数字按钮和运算符按钮...
Android布局详解实例,包含:线性布局(LinearLayout)、相对布局(RelativeLayout)、帧布局(FrameLayout)、表格布局(TableLayout)四大布局方式的demo
本篇文章将详细介绍Android三种基本布局:FrameLayout、LinearLayout和RelativeLayout。 1. **FrameLayout** FrameLayout是最基础的布局,它的特点是所有子视图(View)都会按照从上到下、从左到右的顺序重叠在...
### Android五大布局详解 在Android应用开发过程中,布局设计至关重要,它决定了用户界面(UI)的外观与交互方式。本文将详细介绍Android五大基本布局对象:`FrameLayout`(框架布局)、`LinearLayout`(线性布局)、...
在Android开发中,框架布局(FrameLayout)是基础布局之一,它允许开发者在屏幕上放置一个或多个视图,这些视图通常会堆叠在一起,前一个视图会覆盖后一个视图。本教程将深入探讨Android框架布局的概念、用法以及...
在Android开发中,布局管理器是构建用户界面(UI)的核心工具,它们负责组织和...在"Android核心技术与实例详解—Android布局管理器.pdf"中,你将找到更多关于这些布局的实例和技巧,帮助你深入理解和应用这些知识。
### Android布局详解 #### 1. 线性布局(LinearLayout) **定义**:线性布局是最常用的布局之一,它可以按水平或垂直方向排列子视图。子视图的顺序根据XML文件中出现的顺序来确定。 **特点**: - **顺序性**:子...