Android(安卓)Layout之一:FrameLayout
16lz
2021-01-26
Android Layout有五大布局对象,分别是FrameLayout(帧布局),LinearLayout (线性布局),AbsoluteLayout(绝对布局),RelativeLayout(相对布局),TableLayout(表格布局).
FrameLayout:该布局container可以用来占有屏幕的某块区域来显示单一的对象,可以包含有多个widgets或者是container,但是所有被包含的widgets或者是container必须被固定到屏幕的左上角,并且一层覆盖一层,不能通过为一个widgets或者是container指定一个位置。Container所包含的widgets或者是container的队列是采用的堆栈的结构,最后加进来的widgets或者是container显示在最上面。所以后一个widgets或者是container将会直接覆盖在前一个widgets或者是container之上,把它们部份或全部挡住(除非后一个widgets或者是container是透明的,必须得到FrameLayout Container的允许)。
其中Main.xml 代码如下:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<TextView
android:textColor = "#0000FF"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:text = "@string/hello2"
/>
</FrameLayout>
Strings.xml代码如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, LayoutTestActivity!</string>
<string name="app_name">LayoutTest</string>
<string name="hello2">Hello World, I can not be LOST!</string>
</resources>
如下图,其中TextView Hello2是最后FrameLayout最后加入的,所以该TextView应该是覆盖整个屏幕的,TextView hello1被其覆盖:
FrameLayout:该布局container可以用来占有屏幕的某块区域来显示单一的对象,可以包含有多个widgets或者是container,但是所有被包含的widgets或者是container必须被固定到屏幕的左上角,并且一层覆盖一层,不能通过为一个widgets或者是container指定一个位置。Container所包含的widgets或者是container的队列是采用的堆栈的结构,最后加进来的widgets或者是container显示在最上面。所以后一个widgets或者是container将会直接覆盖在前一个widgets或者是container之上,把它们部份或全部挡住(除非后一个widgets或者是container是透明的,必须得到FrameLayout Container的允许)。
其中Main.xml 代码如下:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<TextView
android:textColor = "#0000FF"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:text = "@string/hello2"
/>
</FrameLayout>
Strings.xml代码如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, LayoutTestActivity!</string>
<string name="app_name">LayoutTest</string>
<string name="hello2">Hello World, I can not be LOST!</string>
</resources>
如下图,其中TextView Hello2是最后FrameLayout最后加入的,所以该TextView应该是覆盖整个屏幕的,TextView hello1被其覆盖:
更多相关文章
- Android(安卓)五大布局
- Android(安卓)CoordinatorLayout+AppBarLayout+ToolBar实现标题
- android软键盘不覆盖屏幕方法
- Android(安卓)listView+CheckBox的实现
- Android(安卓)ConstraintLayout使用指南
- Android仿微信发送语音消息动态提示,支持上滑取消发送
- android toast用法总结(一)
- android listView 总结
- Android(安卓)解屏幕锁与点亮屏幕