转载注明出处:
http://blog.csdn.net/eana_don/article/details/8332778
有gravity时:
资料参考:官网API
FrameLayout是一种比较简单的布局。他的原理就是,整个界面就是一个空白区域,当有新元素要添加时就全部放在这个空白区域的左上角,一个个叠上去,有点类似于卡片一张叠一张的作用。这样后面放的元素全部直接覆盖在之前放的元素上面。虽然我们不可以指定元素摆放的位置,但却可以指定控件摆放的gravity。
一、使用方法
xml写法:没有gravity时:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<Button
android:text="按钮1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<!-- gravity设置的是控件内容相对与控件的位置,layout_gravity设置的是控件自身相对于父控件的位置 -->
<Button
android:text="按钮2在这里"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<Button
android:text="按钮3在按钮2的底下"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</FrameLayout>
有gravity时:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<Button
android:text="按钮1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<!-- gravity设置的是控件内容相对与控件的位置,layout_gravity设置的是控件自身相对于父控件的位置 -->
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal"
android:text="按钮2在这里" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|right"
android:text="按钮3在按钮2的底下" />
</FrameLayout>
运行结果:
1.没有设置控件位置
2.设置了空间位置
二、运用
很多时候觉得,FrameLayout很少用到,但是当然,FrameLayout的存在必定是有他的用处的。根据它的特性,可以用来制成切换的功能,比如多个屏幕切换效果。下面有两个比较简单的运用。第一个是比较基础的,能够展示下原理。第二个,则是加