zoukankan      html  css  js  c++  java
  • GridLayout(网格布局)

    常用属性:

    排列对齐:

    ①设置组件的排列方式:  android:orientation=""     vertical(竖直,默认)或者horizontal(水平)

    ②设置组件的对齐方式:  android:layout_gravity=""  center,left,right,buttom啊,这些,如果想同时用两种的话:eg: buttom|left


    设置布局为几行几列:

    ①设置有多少行:android:rowCount="4"       //设置网格布局有4行

    ②设置有多少列:android:columnCount="4"    //设置网格布局有4列


    设置某个组件位于几行几列

    注:都是从0开始算的哦!


    ①组件在第几行:android:layout_row = "1"   //设置组件位于第二行

    ②组件在第几列:android:layout_column = "2"   //设置该组件位于第三列


    设置某个组件横跨几行几列:

    ①横跨几行:android:layout_rowSpan = "2"    //纵向横跨2行

    ②横跨几列:android:layout_columnSpan = "3"     //横向横跨2列


    使用实例:

    最最最普遍的例子----计算器界面:

    效果图:



    PS:这里要说一点,网格布局和其他布局不同,可以不为组件设置Layout_width和Layout_height属性

    因为组件的宽高由几行几列决定了,当然,你也可以写个wrap_content


    代码:

    1. <GridLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    2.     xmlns:tools="http://schemas.android.com/tools"  
    3.     android:id="@+id/GridLayout1"  
    4.     android:layout_width="wrap_content"  
    5.     android:layout_height="wrap_content"  
    6.     android:rowCount="6"  
    7.     android:columnCount="4"  
    8.     android:orientation="horizontal">  
    9.   
    10.     <TextView   
    11.         android:layout_columnSpan="4"  
    12.         android:text="0"  
    13.         android:textSize="50sp"  
    14.         android:layout_marginLeft="5dp"  
    15.         android:layout_marginRight="5dp"  
    16.     />  
    17.   
    18.     <Button   
    19.         android:text="回退"   
    20.         android:layout_columnSpan="2"  
    21.         android:layout_gravity="fill"     
    22.     />  
    23.      
    24.     <Button   
    25.         android:text="清空"  
    26.         android:layout_columnSpan="2"  
    27.         android:layout_gravity="fill"      
    28.     />  
    29.       
    30.     <Button   
    31.         android:text="+"      
    32.     />  
    33.      
    34.     <Button   
    35.         android:text="1"      
    36.     />  
    37.     <Button   
    38.         android:text="2"      
    39.     />  
    40.     <Button   
    41.         android:text="3"      
    42.     />  
    43.     <Button   
    44.         android:text="-"      
    45.     />  
    46.     <Button   
    47.         android:text="4"      
    48.     />  
    49.     <Button   
    50.         android:text="5"      
    51.     />  
    52.     <Button   
    53.         android:text="6"      
    54.     />  
    55.     <Button   
    56.         android:text="*"      
    57.     />  
    58.     <Button   
    59.         android:text="7"      
    60.     />  
    61.     <Button   
    62.         android:text="8"      
    63.     />  
    64.     <Button   
    65.         android:text="9"      
    66.     />  
    67.     <Button   
    68.         android:text="/"      
    69.     />  
    70.     <Button   
    71.         android:layout_width="wrap_content"  
    72.         android:text="."      
    73.     />  
    74.     <Button   
    75.         android:text="0"      
    76.     />  
    77.      <Button   
    78.         android:text="="      
    79.     />  
    80. </GridLayout>  

    代码解释:

    代码很简单,就是清除和回退按钮设置了跨两列而已,其他的都是直接添加的

    每个组件默认是占一行,占一列

    这里要说明一点:

    通过android:layout_rowSpan和android:layout_columnSpan设置表明组件横越的行数与列数

    再通过:android:layout_gravity = "fill"  设置表明组件填满所横越的整行或者整列


    用法总结:

    ①GridLayout使用虚细线将布局划分为行,列和单元格,同时也支持在行,列上进行交错排列

    ②使用流程:

    step 1:先定义组件的对其方式 android:orientation  水平或者竖直

    step 2:设置组件所在的行或者列,记得是从0开始算的

    step 3:设置组件横跨几行或者几列;设置完毕后,需要在设置一个填充:android:layout_gravity = "fill"

    另外:这些属性也常用到:

    <GridView android:id="@+id/grid"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:verticalSpacing="35px" <!-- grid元素之间的竖直间隔 -->
        android:horizontalSpacing="5px"  <!--grid元素之间的水平间隔  -->
        android:numColumns="auto_fit" <!--表示有多少列,如果设置为auto_fit,将根据columnWidth和Spacing来自动计算 -->
        android:columnWidth="100px" <!-- 一般建议采用有像素密度无关的dip或者dp来表示-->
        android:stretchMode="columnWidth" <!--如何填满空余的位置,模拟器采用WVGA800*480,每排4列,有4*100+5*3=415,还余65px的空间,如果是columnWidth,则这剩余的65将分摊给4列,每列增加16/17px。如果采用SpacingWidth,则分摊给3个间隔空隙 -->
        android:gravity="center"  /> 

  • 相关阅读:
    怎么写好组件
    html5/css3常考面试题
    js各种继承方式和优缺点的介绍
    C#控件背景透明的几种解决方案
    c# 控件闪烁处理方法
    使用委托的BeginInvoke方法来完成复杂任务的操作
    C#中的预处理器指令
    C#中父窗口和子窗口之间实现控件互操作
    C#编程让Outlook乖乖交出帐户密码
    在Linux上运行C#
  • 原文地址:https://www.cnblogs.com/imqsl/p/6602039.html
Copyright © 2011-2022 走看看