当前位置: 代码迷 >> Android >> Android【布局管理器语法】之四大格局【LinearLayout,TableLayout,FrameLayout,RelativeLayout】
  详细解决方案

Android【布局管理器语法】之四大格局【LinearLayout,TableLayout,FrameLayout,RelativeLayout】

热度:303   发布时间:2016-04-27 23:32:59.0
Android【布局管理器语法】之四大布局【LinearLayout,TableLayout,FrameLayout,RelativeLayout】

LinearLayout

线性布局是将放入其中的组件按照垂直(vertical)或者水平(horizontal)方向来布局,

也就是控制其中组件横向排列或者纵向排列。在线性布局中

每一行【针对垂直排列】或每一列【针对水平排列】只能放一个组件

注意:Android线性布局不会换行,当组件一个挨着一个排列到窗体边缘后

剩下的组件将不会显示出来


排列方式由android:orientation属性控制,对齐方式由android:gravity属性来控制

(1)常见属性:

android:orientation,    android:gravity,    

layout_width,     layout_height,

androud:id,android:background


其中前两个是线性布局管理器支持的属性,

后四个是android.view.View和android.view.ViewGroup支持的属性

android:orientation属性

用于设置布局管理器内组件的排列方式,其可选值有horizontal(水平), vertical 【默认】(垂直)


android:gravity属性

用于设置布局管理器内的组件对齐方式,其可选值:top, bottom,left,right,center_vertical,fill_vertical,center_horizontal,fill_horizontal,center,fill,clip_vertical,clip_horizontal

这些值可以同时设定中间用|隔开 。例如:要指定组件靠右下角对齐,可以使用reight|bottom


android:layout_weight是ViewGroup.LayoutParams支持的XML属性

属性用于设置该组件的基本宽度,其可选值有fill_parent,match_parent,wrap_content,其中match_parent(从Android2.2开始推荐使用)和_parent的作用完全相同【表示该组件的宽度和父亲、容器宽度相同】

wrep_content表示该组件宽度恰好能包裹他的内容。

android:layout_height

android:layout_weight类似



TableLayout

表格布局与常见表格类似,它以行,列的形式来管理放入其中的UI组件。表格布局使用<TableLayout></TableLayout>标记定义,

在表格中,可以添加多个<TableRow>标记,每个<TableRow>标记占用一行,由于<TableRow>标记也是容器,所以该标记中还可以添加

其他组件,在<TableRow>标记中,每添加一个组件,表格就会增加一列。

在表格布局中,通过设置可以对列进行隐藏或延伸操作。

从而填充可利用的屏幕空间,也可以设置强制收缩,直到表格匹配屏幕大小。


TableLayout

继承了LinearLayout,因此它支持LinearLayout所支持的全部XML属性,此外TableLayout还有一些特殊属性:

 android:stretchColumns设置需要隐藏的列的序列号(序列从0开始),多个列序号之间用逗号隔开

android:shrinkColumns设置允许被收缩的列序号(序列从0开始),多个列序号之间用逗号隔开

android:stretchColumns设置允许被拉伸的列序号(序列从0开始),多个列序号之间用逗号隔开


<?xml version="1.0" encoding="utf-8"?><TableLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/tablelayout1"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:background="@drawable/loginbg"    android:gravity="center_vertical"    android:stretchColumns="0,3" >    <!-- 第一行 -->    <TableRow        android:id="@+id/tablerow1"        android:layout_width="wrap_content"        android:layout_height="wrap_content" >        <TextView />        <TextView            android:id="@+id/textview1"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="用户名:" />        <EditText            android:id="@+id/edittext1"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:minWidth="200px"            android:textSize="24px" />        <TextView />    </TableRow>    <!-- 第二行 -->    <TableRow        android:id="@+id/tablerow2"        android:layout_width="wrap_content"        android:layout_height="wrap_content" >        <TextView />        <TextView            android:id="@+id/textview2"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="密码"            android:textSize="24px" />        <EditText            android:id="@+id/edittext2"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:inputType="textPassword"            android:minWidth="200px"            android:textSize="24px" />        <TextView />    </TableRow>    <TableRow        android:id="@+id/tablerow2"        android:layout_width="wrap_content"        android:layout_height="wrap_content" >        <TextView />        <TextView />        <Button            android:id="@+id/button1"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="登录"            android:textSize="24px" />        <TextView />    </TableRow></TableLayout>




版权声明:本文为博主原创文章,未经博主允许不得转载。

  相关解决方案