GridLayout: GridLayout使用简介(转)[通俗易懂]

GridLayout: GridLayout使用简介(转)[通俗易懂]Android布局之GridLayout1GridLayout简介GridLayout是Android4.0新提供的网格矩阵形式的布局控件。GridLayout的继承关系如下:java.la

大家好,又见面了,我是你们的朋友全栈君。

Android 布局之GridLayout

 


1 GridLayout简介

GridLayout是Android4.0新提供的网格矩阵形式的布局控件。

GridLayout的继承关系如下:
java.lang.Object
  –> android.view.View
    –> android.view.ViewGroup
      –> android.widget.GridLayout

GridLayout包含的属性如下

android:alignmentMode
属性说明:当设置alignMargins,使视图的外边界之间进行校准。可以取以下值:
alignBounds — 对齐子视图边界。
alignMargins — 对齐子视图边距。

android:columnCount
属性说明:GridLayout的最大列数

android:rowCount
属性说明:GridLayout的最大行数

android:columnOrderPreserved
属性说明: 当设置为true,使列边界显示的顺序和列索引的顺序相同。默认是true。

android:orientation
属性说明:GridLayout中子元素的布局方向。有以下取值:
horizontal — 水平布局。
vertical — 竖直布局。

android:rowOrderPreserved
属性说明: 当设置为true,使行边界显示的顺序和行索引的顺序相同。默认是true。

android:useDefaultMargins
属性说明: 当设置ture,当没有指定视图的布局参数时,告诉GridLayout使用默认的边距。默认值是false。

这些是GridLayout布局本身的属性。

 

 


2 GridLayout子元素属性

上面描述的 GridLayout 的属性,是 GridLayout 布局本身的属性;下面 GridLayout 布局中的元素所支持的属性。GridLayout 布局中的元素的属性,定义在 GridLayout.LayoutParams 中。取值如下:

 

2.1 android:layout_column

属性说明: 显示该空间的列。例如,android:layout_column=”0″,表示在第1列显示该控件;android:layout_column=”1″,表示在第2列显示该控件。

layout文件示例,

GridLayout: GridLayout使用简介(转)[通俗易懂]
GridLayout: GridLayout使用简介(转)[通俗易懂]

复制代码
<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:rowCount="2"
    android:columnCount="3" >
  <Button
        android:id="@+id/one"
        android:layout_column="1"
        android:text="1"/>
  <Button
        android:id="@+id/two"
        android:layout_column="0"
        android:text="2"/>
   <Button
        android:id="@+id/three"
        android:text="3"/>
  <Button
        android:id="@+id/devide"
        android:text="/"/>

</GridLayout>
复制代码

对应的显示效果图

GridLayout: GridLayout使用简介(转)[通俗易懂]

layout文件说明
android:orientation=”horizontal” — GridLayout中控件的布局方向是水平布局。
android:rowCount=”2″               — GridLayout最大的行数为2行。
android:columnCount=”3″          — GridLayout最大的列数为3列。
android:layout_column=”1″        — 定义控件one的位于第2列。
android:layout_column=”0″        — 定义该控two件的位于第1列。

 

2.2 android:layout_columnSpan

属性说明: 该控件所占的列数。例如,android:layout_columnSpan=”2″,表示该控件占2列。

layout文件示例

GridLayout: GridLayout使用简介(转)[通俗易懂]
GridLayout: GridLayout使用简介(转)[通俗易懂]

复制代码
<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:rowCount="2"
    android:columnCount="3" >
  <Button
        android:id="@+id/one"
        android:layout_column="0"
        android:layout_columnSpan="2"
        android:text="1"/>
  <Button
        android:id="@+id/two"
        android:text="2"/>
   <Button
        android:id="@+id/three"
        android:text="3"/>
  <Button
        android:id="@+id/devide"
        android:text="/"/>

</GridLayout>
复制代码

对应的显示效果图

GridLayout: GridLayout使用简介(转)[通俗易懂]

layout文件说明

  数字”1″实际上占据的空间大小是2列,但是第2列显示为空白。若要第2列不显示空白,需要设置 android:layout_gravity属性,参考下例。

 

2.3 android:layout_row

属性说明: 该控件所在行。例如,android:layout_row=”0″,表示在第1行显示该控件;android:layout_row=”1″,表示在第2行显示该控件。它和 android:layout_column类似。

 

2.4 android:layout_rowSpan

属性说明: 该控件所占的行数。例如,android:layout_rowSpan=”2″,表示该控件占2行。它和 android:layout_columnSpan类似。

 

2.5 android:layout_gravity

属性说明

该控件的布局方式。可以取以下值:
  top                      — 控件置于容器顶部,不改变控件的大小。
  bottom                — 控件置于容器底部,不改变控件的大小。
  left                     — 控件置于容器左边,不改变控件的大小。
  right                   — 控件置于容器右边,不改变控件的大小。
  center_vertical     — 控件置于容器竖直方向中间,不改变控件的大小。
  fill_vertical          — 如果需要,则往竖直方向延伸该控件。
  center_horizontal — 控件置于容器水平方向中间,不改变控件的大小。
  fill_horizontal      — 如果需要,则往水平方向延伸该控件。
  center                — 控件置于容器中间,不改变控件的大小。
  fill                     — 如果需要,则往水平、竖直方向延伸该控件。
  clip_vertical        — 垂直剪切,剪切的方向基于该控件的top/bottom布局属性。若该控件的gravity是竖直的:若它的gravity是top的话,则剪切该控件的底部;若该控件的gravity是bottom的,则剪切该控件的顶部。
  clip_horizontal     — 水平剪切,剪切的方向基于该控件的left/right布局属性。若该控件的gravity是水平的:若它的gravity是left的话,则剪切该控件的右边;若该控件的gravity是  right的,则剪切该控件的左边。
  start                  — 控件置于容器的起始处,不改变控件的大小。
  end                   — 控件置于容器的结束处,不改变控件的大小。

对应函数: setGravity(int)

layout文件示例:

GridLayout: GridLayout使用简介(转)[通俗易懂]
GridLayout: GridLayout使用简介(转)[通俗易懂]

复制代码
<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:rowCount="2"
    android:columnCount="3" >
  <Button
        android:id="@+id/one"
        android:layout_column="0"
        android:layout_columnSpan="2"
        android:layout_gravity="fill"
        android:text="1"/>
  <Button
        android:id="@+id/two"
        android:text="2"/>
   <Button
        android:id="@+id/three"
        android:text="3"/>
  <Button
        android:id="@+id/devide"
        android:text="/"/>

</GridLayout>
复制代码

对应的显示效果图

GridLayout: GridLayout使用简介(转)[通俗易懂] 

 

 


3 应用示例

定义一个简单的计算器界面,包含“0-9、.、+、-、*、/、=、”。用GridLayout实现。

layout文件 

复制代码
<?xml version="1.0" encoding="utf-8"?>
<!-- GridLayout: 5行 4列 水平布局 -->
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:rowCount="5"
    android:columnCount="4" >
  <Button
        android:id="@+id/one"
        android:text="1"/>
  <Button
        android:id="@+id/two"
        android:text="2"/>
   <Button
        android:id="@+id/three"
        android:text="3"/>
  <Button
        android:id="@+id/devide"
        android:text="/"/>
  <Button
        android:id="@+id/four"
        android:text="4"/>
  <Button
        android:id="@+id/five"
        android:text="5"/>
  <Button
        android:id="@+id/six"
        android:text="6"/>
  <Button
        android:id="@+id/multiply"
        android:text="×"/>
  <Button
        android:id="@+id/seven"
        android:text="7"/>
  <Button
        android:id="@+id/eight"
        android:text="8"/>
  <Button
        android:id="@+id/nine"
        android:text="9"/>
    <Button
        android:id="@+id/minus"
        android:text="-"/>
    <Button
        android:id="@+id/zero"
        android:layout_columnSpan="2"
        android:layout_gravity="fill"
        android:text="0"/>
  <Button
        android:id="@+id/point"
        android:text="."/>
    <Button
        android:id="@+id/plus"
        android:layout_rowSpan="2"
        android:layout_gravity="fill"
        android:text="+"/>
    <Button
        android:id="@+id/equal"
        android:layout_columnSpan="3"
        android:layout_gravity="fill"
        android:text="="/> 
</GridLayout>
复制代码

 

点击下载:源代码

效果图:

GridLayout: GridLayout使用简介(转)[通俗易懂]

 

本文转自:Android 布局之GridLayout

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/155158.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 将Excel转换为word_excel如何将横排变成竖排

    将Excel转换为word_excel如何将横排变成竖排本次转换用到了NPOI里面的方法,会经过封装成为dll,在.net平台和unity都测试通过。下面主要讲一下思路:1.将表格读取为DataTable类型2.z

    2022年8月22日
    4
  • redis缓存雪崩 缓存穿透 缓存击穿如何解决_防止redis缓存击穿

    redis缓存雪崩 缓存穿透 缓存击穿如何解决_防止redis缓存击穿缓存的击穿、穿透和雪崩应该是再熟悉不过的词了,也是面试常问的高频试题。不过,对于这三大缓存的问题,有很多人背过了解决方案,却少有人能把思路给理清的。而且,网络上仍然充斥着,大量不太靠谱的解决方案,难免误人子弟。我的这篇文章,则会对这三大缓存问题,做一个深入的探讨和分析。最有价值的,不是答案本身,而是诞生答案的过程。缓存击穿缓存击穿是什么,大家应该心里都清楚,我只做一个简单通俗的解释:…

    2022年9月14日
    3
  • Cenos7安装helm3(及常用命令)

    Cenos7安装helm3(及常用命令)

    2021年5月14日
    145
  • linux ss 命令用法说明

    linux ss 命令用法说明

    2022年2月15日
    71
  • 证明威尔逊定理的逆定理_威尔德定理

    证明威尔逊定理的逆定理_威尔德定理威尔逊定理:当( p-1)!≡-1(modp) 时,p为素数。证明如下充分性:当p不是素数,那么令p=a*b,其中1  (1)若a≠b,    因为(p-1)!=1*2*…*a*…*b*…*p-1,    所以(p-1)!≡0(moda)            (

    2025年6月6日
    1
  • 十大Java编程工具

    十大Java编程工具以下是大多数Java程序员在日常生活中使用的10种最常见的Java开发工具。如果您正在使用Java技术,您应该已经熟悉这些工具,但如果您不熟悉,那么现在是了解和探索它们的好时机。1.Eclipse、NetBeans或IntelliJIDEAIDE是Java开发人员最重要的工具。IDE不仅为您提供集成开发环境,还有助于导航、调试和记录您的代码。由于Eclipse是行业领导者,因此几乎一半的Java开发人员都使用它。我更进一步,除了使用Eclipse,我喜欢使用Netb

    2022年7月7日
    25

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号