IDEA Android 网格布局(GridLayout)示例(计算器界面布局)

news2024/11/26 4:54:41

网格布局(GridLayout)

示例程序效果(实现类似vivo手机自带计算器UI)

真机和模拟器运行效果:

 

简述:

GridLayout(网格布局)和TableLayout(表格布局)有类似的地方,通俗来讲可以理解为网格布局是表格布局的升级版,这样容易理解。相对来说网格布局的优点有一下几点:

  1. 可以设置布局中组件的排列方式。
  2. 任意自定义网格布局的行列。
  3. 可以直接设置组件位于某行某列。
  4. 可以设置组件横跨几行或者几列。

主要属性: 

设置排列对齐
android:orientation :设置排列方式,默认垂直(vertical竖直)、水平(horizontal)。
android:layout_gravity : 设置对齐方式,left ,right,center,buttom,也可以同时使用俩个,比如:top | left。

设置几行几列
android:rowCount=”5”//设置网格布局有5行。
android:columnCount=”5”//设置网格布局有5列。

设置组件所在的行列(注意:是从0开始计的!)
android:layout_row =”2”//设置组件位于第3行。
android:layout_column = “3” //设置该组件位于第4列。

设置组件横跨几行几列
android:layout_rowSpan=”3”//纵向横跨3行合并
android:layout_columnSpan=”3”//横向横跨3列合并

activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:tools="http://schemas.android.com/tools"
            android:id="@+id/GridLayout1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:columnCount="4"
            android:orientation="horizontal"
            android:layout_margin="5dp"
            android:rowCount="7">


    <TextView
            android:layout_columnSpan="4"
            android:layout_gravity="fill"
            android:layout_width="0dp"
            android:layout_margin="2dp"

            android:background="#FFFFF0"
            android:text="0"
            android:textSize="50sp" />

    <Button
            android:layout_columnSpan="1"
            android:layout_gravity="fill"
            android:layout_margin="2dp"
            android:text="mc" />

    <Button
            android:layout_columnSpan="1"
            android:layout_gravity="fill"
            android:layout_margin="2dp"
            android:text="m+" />

    <Button
            android:layout_columnSpan="1"
            android:layout_gravity="fill"
            android:layout_margin="2dp"
            android:text="m-" />

    <Button
            android:layout_columnSpan="1"
            android:layout_gravity="fill"
            android:layout_margin="2dp"
            android:text="mr" />

    <Button
            android:text="AC"
            android:layout_margin="2dp"
            android:layout_gravity="fill" />

    <Button
            android:text="退格"
            android:layout_margin="2dp"
            android:layout_gravity="fill" />

    <Button

            android:text="+/-"
            android:layout_margin="2dp"
            android:layout_gravity="fill" />

    <Button

            android:text="/"
            android:layout_margin="2dp"
            android:layout_gravity="fill" />

    <Button

            android:text="7"
            android:layout_margin="2dp"
            android:layout_gravity="fill" />

    <Button
            android:text="8"
            android:layout_margin="2dp"
            android:layout_gravity="fill" />

    <Button
            android:text="9"
            android:layout_margin="2dp"
            android:layout_gravity="fill" />

    <Button
            android:text="*"
            android:layout_margin="2dp"
            android:layout_gravity="fill" />

    <Button
            android:text="4"
            android:layout_margin="2dp"
            android:layout_gravity="fill" />

    <Button
            android:text="5"
            android:layout_margin="2dp"
            android:layout_gravity="fill" />

    <Button
            android:text="6"
            android:layout_margin="2dp"
            android:layout_gravity="fill" />

    <Button
            android:text="-"
            android:layout_margin="2dp"
            android:layout_gravity="fill" />

    <Button
            android:text="1"
            android:layout_margin="2dp"
            android:layout_gravity="fill" />

    <Button

            android:text="2"
            android:layout_margin="2dp"
            android:layout_gravity="fill" />

    <Button
            android:text="3"
            android:layout_margin="2dp"
            android:layout_gravity="fill" />

    <Button
            android:text="+"
            android:layout_margin="2dp"
            android:layout_gravity="fill" />

    <Button
            android:text="%"
            android:layout_margin="2dp"
            android:layout_gravity="fill" />

    <Button

            android:text="0"
            android:layout_margin="2dp"
            android:layout_gravity="fill" />

    <Button
            android:text="."
            android:layout_margin="2dp"
            android:layout_gravity="fill" />

    <Button
            android:text="="
            android:layout_margin="2dp"
            android:layout_gravity="fill" />


</GridLayout>

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/385021.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

搜广推 Product-based Neural Networks (PNN) - 改进特征交叉的方式

😄 PNN:2016年上海交通大学提出。 文章目录 1、PNN1.1、原理1.2、创新点:product层1.3、product层z部分的输出:l~z~ 的计算方式:1.4、product层z部分的输出:l~p~ 的计算方式:1.4.1、IPNN1.4.2、OPNN1.5、优点1.6、缺点Reference1、PNN PNN:Product-based Neural Netwo…

Spark 故障排除

1 故障排除一&#xff1a;控制reduce端缓冲大小以避免OOM 在Shuffle过程&#xff0c;reduce端task并不是等到map端task将其数据全部写入磁盘后再去拉取&#xff0c;而是map端写一点数据&#xff0c;reduce端task就会拉取一小部分数据&#xff0c;然后立即进行后面的聚合、算子…

colletions学习和链式调用,以及优雅的展示代码

1&#xff0c;python 中尽量减少缩进可以直接 if code ! 1: return {msg:2003} 继续写下面的逻辑 2&#xff0c;关于&#xff08;1&#xff09;&#xff0c;&#xff08;1&#xff0c;&#xff09;区别 &#xff08;1&#xff09;表示直接计算运行 &#xff08;1*2*345&a…

Leetcode.2359 找到离给定两个节点最近的节点

题目链接 Leetcode.2359 找到离给定两个节点最近的节点 Rating &#xff1a; 1715 题目描述 给你一个 n个节点的 有向图 &#xff0c;节点编号为 0到 n - 1&#xff0c;每个节点 至多 有一条出边。 有向图用大小为 n下标从 0开始的数组 edges表示&#xff0c;表示节点 i有一条…

数字档案室测评的些许感悟

我是甲方&#xff0c;明明我家是档案“室”&#xff0c;为什么申请的是数字档案“馆”&#xff1f; 笔者正对着手里的一份方案苦笑&#xff0c;甲方爸爸是某机关单位档案室&#xff0c;方案最后的附件赫然写着几个大字&#xff1a;“申请国家级数字档案馆……“。这样的事屡见…

SpringMVC再学习

基于原生的Servlet&#xff0c;通过了功能强大的前端控制器DispatcherServlet&#xff0c;对请求和相应进行统一处理 如今我们不再去web.xml中去主持servlet 而是直接创建一个配置类ServletContainersInitConfig去基础AbstractDispatcherServletInitializer createServletApp…

高性能 WPF 图表控件LightningChart.NET:支持从 Web 服务器获取数据 | 附最新版试用下载

LightningChart.NET 是一款高性能 WPF 和 Winforms 图表,可以实时可视化多达1万亿个数据点。可有效利用CPU和内存资源&#xff0c;实时监控数据流。同时&#xff0c;LightningChart使用突破性创新技术&#xff0c;以实时优化为前提&#xff0c;大大提升了实时渲染的效率和效果&…

Python的面向对象,详细讲解Python之用处等基本常识

目录 Python 面向对象 面向对象技术简介 创建类 实例 实例 self代表类的实例&#xff0c;而非类 实例 创建实例对象 访问属性 实例 Python内置类属性 实例 python对象销毁(垃圾回收) 实例 实例 类的继承 实例 方法重写 实例 基础重载方法 运算符重载 实例…

机器学习: 可视化反卷积操作

转置卷积操作的详细分解 1. 简介 转置卷积是用于生成图像的&#xff0c;尽管它们已经存在了一段时间&#xff0c;并且得到了很好的解释——我仍然很难理解它们究竟是如何完成工作的。我分享的文章[1]描述了一个简单的实验来说明这个过程。我还介绍了一些有助于提高网络性能的技…

yolov5的基本配置

yolov5的基本配置train.pydata.yaml数据集标签文件格式:总结train.py def parse_opt(knownFalse):parser argparse.ArgumentParser()parser.add_argument(--weights, typestr, defaultROOT / yolov5s.pt, helpinitial weights path)parser.add_argument(--cfg, typestr, defau…

【Java面试篇】Spring中@Transactional注解事务失效的常见场景

文章目录Transactional注解的失效场景☁️前言&#x1f340;前置知识&#x1f341;场景一&#xff1a;Transactional应用在非 public 修饰的方法上&#x1f341;场景二&#xff1a; propagation 属性设置错误&#x1f341;场景三&#xff1a;rollbackFor属性设置错误&#x1f3…

Apache druid未授权命令执行漏洞复现

简介 Apache Druid是一个实时分析型数据库&#xff0c;旨在对大型数据集进行快速的查询分析&#xff08;"OLAP"查询)。Druid最常被当做数据库来用以支持实时摄取、高性能查询和高稳定运行的应用场景&#xff0c;同时&#xff0c;Druid也通常被用来助力分析型应用的图…

【蓝桥杯嵌入式】拓展板之数码管显示

文章目录硬件电路连接方式函数实现文章福利硬件电路 通过上述原理图&#xff0c;可知拓展板上的数码管是一个共阴数码管&#xff0c;也就是说某段数码管接上高电平时&#xff0c;就会点亮。   上述原理图还给出一个提示&#xff0c;即&#xff1a;三个数码管分别与三个74HC59…

十八、Django-restframework之请求和响应(三)

1. 请求对象 REST框架引入了一个扩展了常规HttpRequest的请求对象&#xff0c; 并提供更灵活的请求解析。请求对象的核心功能是属性request.data&#xff0c;这与request.POST类似&#xff0c;但对于WebAPIs更有用。 request.POST # Only handles form data. Only works fo…

Barra模型因子的构建及应用系列五之NonLinear Size因子

一、摘要 在前期的Barra模型系列文章中&#xff0c;我们构建了Size因子、Beta因子、Momentum因子和Residual Volatility因子&#xff0c;并分别创建了对应的单因子策略&#xff0c;本节文章在该系列下进一步构建NonLinear Size因子。从回测结果看&#xff0c;自2022年以来&…

ConcurrentHashMap-Java八股面试(五)

系列文章目录 第一章 ArrayList-Java八股面试(一) 第二章 HashMap-Java八股面试(二) 第三章 单例模式-Java八股面试(三) 第四章 线程池和Volatile关键字-Java八股面试(四) 提示&#xff1a;动态每日更新算法题&#xff0c;想要学习的可以关注一下 文章目录系列文章目录一、…

基于卷积神经网络CNN的三相故障识别

目录 背影 卷积神经网络CNN的原理 卷积神经网络CNN的定义 卷积神经网络CNN的神经元 卷积神经网络CNN的激活函数 卷积神经网络CNN的传递函数 卷积神经网络CNN手写体识别 基本结构 主要参数 MATALB代码 结果图 展望 背影 现在生活&#xff0c;为节能减排&#xff0c;减少电能损…

Ajax学习 基础概念 发送请求 常见方法

AJAX 简介 AJAX 全称为Asynchronous Javascript And XML &#xff0c;就是异步的JS和XML。 通过AJAX可以再浏览器中向服务器发送异步请求&#xff0c;最大的优势&#xff1a;无刷新获取数据。 AJAX 不是新的编程语言&#xff0c;而是一种将现有的标准组合在一起使用的新方式。…

从FPGA说起的深度学习(四)

这是新的系列教程&#xff0c;在本教程中&#xff0c;我们将介绍使用 FPGA 实现深度学习的技术&#xff0c;深度学习是近年来人工智能领域的热门话题。在本教程中&#xff0c;旨在加深对深度学习和 FPGA 的理解。用 C/C 编写深度学习推理代码高级综合 (HLS) 将 C/C 代码转换为硬…

锚点定位使内容在指定区域显示

1、问题描述 在使用锚点定位时&#xff0c;使用 scrollIntoView 方法&#xff0c;导致整个页面随着锚点跳转 2、问题分析 因为最开始做需求的时候&#xff0c;只在最外层设置了一个滚动条&#xff0c;所以导致整体锚点的跳转是随着最外层滚动条距离顶部的高度跳转的&#xf…