• 如何使用andriod的布局标签


    FrameLayout:里面只可以有一个控件,并且不能设计这个控件的位置,控件会放到左上角
    LinearLayout:里面可以放多个控件,但是一行只能放一个控件
    TableLayout:这个要和TableRow配合使用,很像html里面的table
    AbsoluteLayout:里面可以放多个控件,并且可以自己定义控件的x,y的位置
    RelativeLayout:里面可以放多个控件,不过控件的位置都是相对位置

    LinearLayout
    1.        RelativeLayout的 熟悉RelativeLayout android rientation="vertical" 表示竖直方式对齐   
    2.                android rientation="horizontal"表示水平方式对齐   
    3.                android:layout_width="fill_parent"定义当前视图在屏幕上   
    4.                    可以消费的宽度,fill_parent即填充整个屏幕。   
    5.                android:layout_height="wrap_content":随着文字栏位的不同   
    6.                而改变这个视图的宽度或者高度。有点自动设置框度或者高度的意思   
    7.                         
    8.               layout_weight 用于给一个线性布局中的诸多视图的重要度赋值。



    FrameLayout

    FrameLayout 是最简单的一个布局对象。它被定制为你屏幕上的一个空白备用区域,之后你可以在其中填充一个单一对象 — 比如,一张你要发布的图片。所有的子元素将会固定在屏幕的左上角;你不能为FrameLayout中的一个子元素指定一个位置。后一个子元素将会直接在前 一个子元素之上进行覆盖填充,把它们部份或全部挡住(除非后一个子元素是透明的)。

    LinearLayout

    LinearLayout 以你为它设置的垂直或水平的属性值,来排列所有的子元素。所有的子元素都被堆放在其它元素之后,因此一个垂直列表的每一行只会有一个元素,而不管他们有多 宽,而一个水平列表将会只有一个行高(高度为最高子元素的高度加上边框高度)。LinearLayout保持子元素之间的间隔以及互相对齐(相对一个元素 的右对齐、中间对齐或者左对齐)。 

    LinearLayout还支持为单独的子元素指定weight。好处就是允许子元素可以填充屏幕上 的剩余空间。这也避免了在一个大屏幕中,一串小对象挤成一堆的情况,而是允许他们放大填充空白。子元素指定一个weight值,剩余的空间就会按这些子元 素指定的weight比例分配给这些子元素。默认的weight值为0。例如,如果有三个文本框,其中两个指定了weight值为1,那么,这两个文本框 将等比例地放大,并填满剩余的空间,而第三个文本框不会放大。

    下面的两个窗体采用LinearLayout,包含一组的元素:一个按钮, 几个标签,几个文本框。两个窗体都为布局做了一番修饰。文本框的width被设置为FILL_PARENT;其它元素的width被设置为 WRAP_CONTENT。默认的对齐方式为左对齐。左边的窗体没有设置weight(默认为0);右边的窗体的comments文本框weight被设 置为1。如果Name文本框也被设置为1,那么Name和Comments这两个文本框将会有同样的高度。 


    在一个水平排列的LinearLayout中,各项按他们的文本基线进行排列(第一列第一行的元素,即最上或最左,被设定为参考基线)。因此,人们在一个窗体中检索元素时,就不需要七上八下地读元素的文本了。我们可以在layout的XML中设置android:baselineAligned="false",来关闭这个设置。 

    TableLayout

    TableLayout 将子元素的位置分配到行或列中。android的一个TableLayout由许多的TableRow组成,每个TableRow都会定义一个row(事 实上,你可以定义其它的子对象,这在下面会解释到)。TableLayout容器不会显示row、cloumns或cell的边框线。每个row拥有0个 或多个的cell;每个cell拥有一个View对象。表格由列和行组成许多的单元格。表格允许单元格为空。单元格不能跨列,这与HTML中的不一样。下图显示了一个TableLayout,图中的虚线代表不可视的单元格边框。 


    列可以被隐藏,也可以被设置为伸展的从而填充可利用的屏幕空间,也可以被设置为强制列收缩直到表格匹配屏幕大小。对于更详细信息,可以查看这个类的参考文档。 

    AbsoluteLayout

    AbsoluteLayout可以让子元素指定准确的x/y坐标值,并显示在屏幕上。(0, 0)为左上角,当向下或向右移动时,坐标值将变大。AbsoluteLayout没有页边框,允许元素之间互相重叠(尽管不推荐)。我们通常不推荐使用AbsoluteLayout,除非你有正当理由要使用它,因为它使界面代码太过刚性,以至于在不同的设备上可能不能很好地工作。 

    RelativeLayout

    RelativeLayout 允许子元素指定他们相对于其它元素或父元素的位置(通过ID指定)。因此,你可以以右对齐,或上下,或置于屏幕中央的形式来排列两个元素。元素按顺序排 列,因此如果第一个元素在屏幕的中央,那么相对于这个元素的其它元素将以屏幕中央的相对位置来排列。如果使用XML来指定这个layout,在你定义它之 前,被关联的元素必须定义。 

    这是一个RelativeLayout例子,其中有可视的和不可视的元素。基础的屏幕layout对象是一个RelativeLayout对象。



    这 个视图显示了屏幕元素的类名称,下面是每个元素的属性列表。这些属性一部份是由元素直接提供,另一部份是由容器的LayoutParams成员 (RelativeLayout的子类)提供。RelativeLayout参数有 width,height,below,alignTop,toLeft,padding和marginLeft。注意,这些参数中的一部份,其值是相对 于其它子元素而言的,所以才RelativeLayout。这些参数包括toLeft,alignTop和below,用来指定相对于其它元素的左,上和 下的位置。

    重要View Group摘要 

    这些对象拥有UI子元素。一些提供可视的UI,另一些只处理子元素的布局。 

    Class         Description 
    AbsoluteLayout 
    可以通过精确的坐标(如屏幕像素)指定子对象相对父容器的位置 
    FrameLayout
    负责显示单一对象的Layout 
    Gallery
    一个以水平滚动方式显示有序图片列表的显示器 
    GridView  
    显示一个可滚动的有m列n行的表格 
    LinearLayout  
    以水平或垂直方式显示子元素的Layout。如果窗体的长度超过了屏幕的长度,将会出现滚动条 
    ListView
    显示一个可滚动的单列列表 
    PopupList         一个独立的带边框的元素弹出列表 
    RelativeLayout  
    能够指定子对象相对于其它对象(如A在B的左边)或父对象(如在父容器的顶部)的位置 
    ScrollView
    一个垂直的元素滚动列 
    Spinner
    在一个单行文本框中,同时只显示一个有序列表中的一个项。类似于一个可以水平或垂直滚动的单行listbox 
    SurfaceView
    提供直接访问一个可画图的界面。可以控制在界面顶部的子视图层。SurfaceView是提供给需要直接画像素而不是使用窗体部件的应用使用的。 
    TabHost
    提供一个页签选择列表,监视点击并在一个页签被点击时保证应用切换屏幕。 
    TableLayout  
    一个拥有任意行和列的表格layout,每一个单元格拥有窗体部份。行会根据最大的列而自动调整大小。单元格边框不可见。 
    ViewFlipper
    一个在单行文本框中同一时刻只显示一项的列表组件。它可以根据时间周期切换显示项,类似一个幻灯机。 
    ViewSwitcher  
    类似ViewFlipper 




    LinearLayout标签中的androidrientation属性 
    用 于定义该LinearLayout内的各种控件的排列对齐方式。有”vertical”和”horizontal”两种值,分别表示垂直对齐和水平对齐。 例如androidrientation=”horizontal”这样定义就表示该LinearLayout内的所有控件的中心点都在一条水平线上,即 左右方向。而android rientation=”vertical”则表示LinearLayout中的控件的中心点都在一条垂直线上,即上下方向。
    当android rientation设置为vertical时,一行只能有一个元素,而不管该元素有多宽;当设置为horizontal时,则所有元素都在一行,不会换行。 
    1.        android:layout_width与android:layout_height 
    用 于定义控件的宽度与高度。它也有两个值,分别是:”fill_parent”与”wrap_content”。”fill_parent”表示控件的宽/ 高度以其父视图大小为准,即填满父视图的空间;”wrap_content”随着视图中内容的不同而改变控件的宽度或者高度,类似于自动设置宽/高的意 思。需要注意的是,这两个属性会受android:layout_weight的影响。
    当然,你还可以使用 android:layout_width和android:layout_height指定宽度和高度时,可指定尺寸,如25px。如果不想指定具体的 宽度和高度时,可以使用“wrap_content”使控件根据内容来自适应或者可以使用“fill_parent”占满该控件所在容器的所有空间。
    在JAVA在代码里可通过setOrientation方法进行动态改变,值分别为HORIZONTAL或者VERTICAL。 
    2.        android:layout_weight 
    layout_weight 是LinearLayouts布局里一个很重要的值。它用于定义一个线性布局中的诸多视图的重要度。所有的视图都有一个layout_weight值,默 认为零,意思是需要显示多大的视图就占据多大的屏幕空间。若赋一个高于零的值,则将父视图中的可用空间分割,分割大小取决于布局中的每一个视图的 layout_weight值以及该值在当前屏幕布局的整体layout_weight值和在其它视图屏幕布局的layout_weight值中所占的比 率而定。 
    当设置某个视图的android:layout_weight值为0时,该视图覆盖整个屏幕,其它视图将不能显示。Android总是将第一个layout_weight值为0的视图最大化,而忽略其它视图。
    举 个例子:比如说在水平方向上有一个文本标签和两个文本编辑元素。该文本标签并无指定layout_weight值,所以它将占据需要提供的最少空间。如果 两个文本编辑元素每一个的android:layout_weight值都设置为1,则两者平分在父视图布局剩余的宽度(因为我们声明这两者的重要度相 等)。如果两个文本编辑元素其中第一个的layout_weight值设置为1,而第二个的设置为2,则剩余空间的三分之二分给第一个,三分之一分给第二 个(数值越小,重要度越高)。
    即在一个LinearLayout内各个组件是按layout_weight值以反比形式显示在屏幕上,在LinearLayout之间也是以反比的形式显示在屏幕上的。更多有关android:layout_weight的信息可以在Google中搜索”android layout_weight”关键字来得到。 
    3.        android:gravity 
    控 件中的内容的对齐方式默认是left and top aligned(左上,前者left表示垂直方位上的对齐方式,后者top表示水平方位上的对齐方式,对齐时都是以包含控件的视图的中心点为基准的)的, 但可通过对应的xml属性android:layout_gravity重新设置(在JAVA代码中使用setGravity方法设置) 内容在控件中的方位。如上例中的android:gravity=”center_horizontal”,即设置内容在控件中的位置是:居中并且水平对 齐。 
    4.        android:padding 
    设置边距,有4个方向上的边距属性:android:paddingLeft、 android:paddingRight,、android:paddingTop以及
    android:paddingBottom。 
    5.        其它属性 
    android:text            定义文本内容
    android:textSize      定义文字大小
    android:background  定义背景色
    android:textColor     定义文本颜色
  • 相关阅读:
    html书签展示(带搜索)
    PHP 无限级分类(递归)
    文件服务器的搭建
    php swoole 和 websocket的初次碰撞
    Linux 服务管理的两种方式service和systemctl
    Jquery 代码参考
    分享几个网址二维码生成api
    WordPress 缩率图学习笔记
    Linux 究级基础入门命令整理
    ltrim的思考
  • 原文地址:https://www.cnblogs.com/tfy1332/p/3654341.html
Copyright © 2020-2023  润新知