20.HarmonyOS App(JAVA)表格布局Layout使用方法

ability_main.xml,实现计算器键盘按钮
<?xml version="1.0" encoding="utf-8"?>
<TableLayoutxmlns:ohos="http://schemas.huawei.com/res/ohos"ohos:height="match_parent"ohos:width="match_parent"ohos:row_count="6"ohos:column_count="4"><Buttonohos:id="$+id:btn_table"ohos:height="35vp"ohos:width="65vp"ohos:text = "表格布局_计算器键盘"ohos:background_element="#FF374FF1"ohos:text_size="20fp"ohos:text_color="#FFFDFCFC"ohos:margin="6vp"/><Buttonohos:height="35vp"ohos:width="65vp"ohos:text = "7"ohos:background_element="#FF7BA4CF"ohos:text_size="20fp"ohos:margin="6vp"/><Buttonohos:height="35vp"ohos:width="65vp"ohos:text = "8"ohos:background_element="#FF7BA4CF"ohos:text_size="20fp"ohos:margin="6vp"/><Buttonohos:height="35vp"ohos:width="65vp"ohos:text = "9"ohos:background_element="#FF7BA4CF"ohos:text_size="20fp"ohos:margin="6vp"/><Buttonohos:height="35vp"ohos:width="65vp"ohos:text = "/"ohos:background_element="#FF7BA4CF"ohos:text_size="20fp"ohos:margin="6vp"/><Buttonohos:height="35vp"ohos:width="65vp"ohos:text = "4"ohos:background_element="#FF59EC23"ohos:text_size="20fp"ohos:margin="6vp"/><Buttonohos:height="35vp"ohos:width="65vp"ohos:text = "5"ohos:background_element="#FF59EC23"ohos:text_size="20fp"ohos:margin="6vp"/><Buttonohos:height="35vp"ohos:width="65vp"ohos:text = "6"ohos:background_element="#FF59EC23"ohos:text_size="20fp"ohos:margin="6vp"/><Buttonohos:height="35vp"ohos:width="65vp"ohos:text = "*"ohos:background_element="#FF59EC23"ohos:text_size="20fp"ohos:margin="6vp"/><Buttonohos:height="35vp"ohos:width="65vp"ohos:text = "1"ohos:background_element="#FF7BA4CF"ohos:text_size="20fp"ohos:margin="6vp"/><Buttonohos:height="35vp"ohos:width="65vp"ohos:text = "2"ohos:background_element="#FF7BA4CF"ohos:text_size="20fp"ohos:margin="6vp"/><Buttonohos:height="35vp"ohos:width="65vp"ohos:text = "3"ohos:background_element="#FF7BA4CF"ohos:text_size="20fp"ohos:margin="6vp"/><Buttonohos:height="35vp"ohos:width="65vp"ohos:text = "-"ohos:background_element="#FF7BA4CF"ohos:text_size="20fp"ohos:margin="6vp"/><Buttonohos:height="35vp"ohos:width="65vp"ohos:text = "0"ohos:background_element="#FF59EC23"ohos:text_size="20fp"ohos:margin="6vp"/><Buttonohos:height="35vp"ohos:width="65vp"ohos:text = "."ohos:background_element="#FF59EC23"ohos:text_size="20fp"ohos:margin="6vp"/><Buttonohos:height="35vp"ohos:width="65vp"ohos:text = "+"ohos:background_element="#FF59EC23"ohos:text_size="20fp"ohos:margin="6vp"/><Buttonohos:height="35vp"ohos:width="65vp"ohos:text = "="ohos:background_element="#FF59EC23"ohos:text_size="20fp"ohos:margin="6vp"/><Buttonohos:id="$+id:btn_clear"ohos:height="35vp"ohos:width="65vp"ohos:text = "clear"ohos:background_element="#FF7BA4CF"ohos:text_size="20fp"ohos:margin="6vp"/></TableLayout>
MainAbilitySlice.java
点击按钮,toast消息提示,设置按钮控件跨列效果
package com.example.myapplication.slice;import com.example.myapplication.ResourceTable;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.agp.components.Button;
import ohos.agp.components.Component;
import ohos.agp.components.TableLayout;
import ohos.agp.utils.LayoutAlignment;
import ohos.agp.window.dialog.ToastDialog;import static ohos.agp.components.TableLayout.*;public class MainAbilitySlice extends AbilitySlice {@Overridepublic void onStart(Intent intent) {super.onStart(intent);super.setUIContent(ResourceTable.Layout_ability_main);Button button_table = (Button) findComponentById(ResourceTable.Id_btn_table);Button button_clear = (Button) findComponentById(ResourceTable.Id_btn_clear);TableLayout.LayoutConfig config = new TableLayout.LayoutConfig(TableLayout.specification(0,1),TableLayout.specification(0,4));//TableLayout.specification(4,1),行规范//TableLayout.specification(0,4),列规范//设置宽度config.width = button_table.getWidth()*4 + button_table.getMarginLeft()*6;//设置高度config.height = button_table.getHeight();//设置外边框config.setMargins(button_table.getMarginLeft(),button_table.getMarginTop(),button_table.getMarginRight(),button_table.getMarginBottom());button_table.setLayoutConfig(config);TableLayout.LayoutConfig config2 = new TableLayout.LayoutConfig(TableLayout.specification(5,1),TableLayout.specification(0,4));//TableLayout.specification(4,1),行规范//TableLayout.specification(0,4),列规范//设置宽度config2.width = button_clear.getWidth()*4 + button_clear.getMarginLeft()*6;//设置高度config2.height = button_clear.getHeight();//设置外边框config2.setMargins(button_clear.getMarginLeft(),button_clear.getMarginTop(),button_clear.getMarginRight(),button_clear.getMarginBottom());button_clear.setLayoutConfig(config2);button_clear.setClickedListener(new ClickedListener() {@Overridepublic void onClick(Component component) {new ToastDialog(getContext()).setText("点击了清除按钮").setAlignment(LayoutAlignment.CENTER).show();}});}@Overridepublic void onActive() {super.onActive();}@Overridepublic void onForeground(Intent intent) {super.onForeground(intent);}
}
TableLayout的自有XML属性见下表:
| 属性名称 | 中文描述 | 取值 | 取值说明 | 使用案例 |
|---|---|---|---|---|
| alignment_type | 对齐方式 | align_edges | 表示TableLayout内的组件按边界对齐。 | ohos:alignment_type="align_edges" |
| align_contents | 表示TableLayout内的组件按边距对齐。 | ohos:alignment_type="align_contents" | ||
| column_count | 列数 | integer类型 | 可以直接设置整型数值,也可以引用integer资源。 | ohos:column_count="3" ohos:column_count="$integer:count" |
| row_count | 行数 | integer类型 | 可以直接设置整型数值,也可以引用integer资源。 | ohos:row_count="2" ohos:row_count="$integer:count" |
| orientation | 排列方向 | horizontal | 表示水平方向布局。 | ohos:orientation="horizontal" |
| vertical | 表示垂直方向布局。 | ohos:orientation="vertical" |
相关文章:
20.HarmonyOS App(JAVA)表格布局Layout使用方法
ability_main.xml,实现计算器键盘按钮 <?xml version"1.0" encoding"utf-8"?> <TableLayoutxmlns:ohos"http://schemas.huawei.com/res/ohos"ohos:height"match_parent"ohos:width"match_parent"oho…...
Android使用ScrollView导致鼠标点击事件无效
平台 测试平台: RK3288 Android8.1RK3588 Android 12 问题 首先, 这个问题的前提是, 使用的输入设备是**鼠标**, 普通的触摸屏并不会出现这个问题. 大致的流程是APP的UI布局中采用ScrollView作为根容器, 之后添加各类子控件, 在一起准备就绪后, 使用鼠标进行功能测试, 出现…...
【开源】SpringBoot框架开发大学计算机课程管理平台
目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 实验课程档案模块2.2 实验资源模块2.3 学生实验模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 实验课程档案表3.2.2 实验资源表3.2.3 学生实验表 四、系统展示五、核心代码5.1 一键生成实验5.2 提交实验5.3 批阅实…...
Mac Shift切换输入法 - shift切换中英文 - Karabiner-Elements
转载自 https://www.jianshu.com/p/677ae7d9beda...
智慧港口:山海鲸可视化引领未来
随着疫情的结束,全球贸易迎来新的春天,港口作为物流枢纽的地位日益凸显。然而,传统港口的运营和管理方式已无法满足现代物流的需求。为了提高港口运营效率,降低成本,智慧港口的概念应运而生。作为山海鲸可视化的开发者…...
Linux 网络编程 + 笔记
协议:一组规则 分层模型结构: OSI七层模型:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层TCP/IP 4层模型:链路层/网络接口层、网络层、传输层、应用层 应用层:http、ftp、nfs、ssh、telnet、传输层&am…...
顺序表应用3:元素位置互换之移位算法
顺序表应用3:元素位置互换之移位算法 Description 一个长度为len(1<len<1000000)的顺序表,数据元素的类型为整型,将该表分成两半,前一半有m个元素,后一半有len-m个元素(1<m<len),借…...
Luogu P6066 [USACO05JAN] Watchcow S 题解 欧拉回路
题目链接:Luogu P6066 [USACO05JAN] Watchcow S 欧拉回路 题目描述: 给定一张无向图,输出任意一条从一号结点出发的欧拉回路(欧拉回路指每条无向边来回经过且只经过一次),给定的图保证这样的欧拉回路存在。…...
计算机网络_1.6.3 计算机网络体系结构分层思想举例
1.6.3 计算机网络体系结构分层思想举例 1、实例引入(用户在主机中使用浏览器访问web服务器)2、从五层原理体系结构的角度研究该实例3、练习题 笔记来源: B站 《深入浅出计算机网络》课程 本节通过一个常见的网络应用实例,来介绍计…...
图论练习1
内容:,拆点,分层,传递,带限制的最小生成树 [HNOI2015]菜肴制作 题目链接 题目大意 有个限制,号菜肴在号前完成在满足限制的条件下,按照出菜( 是为了满足的限制 ) 解题思路 由限制…...
canvas设置图形各种混合模式,类似photoshop效果
查看专栏目录 canvas实例应用100专栏,提供canvas的基础知识,高级动画,相关应用扩展等信息。canvas作为html的一部分,是图像图标地图可视化的一个重要的基础,学好了canvas,在其他的一些应用上将会起到非常重…...
谷粒商城-P19
项目结构创建&提交到码云 数据库初始化 保持docker数据库一直打开 docker update redis --restartalways 连不上了,发现配置文件错了 换了一个配置文件。 快速开发 使用开源的脚手架 人人开源 (gitee.com) 使用renren-fast作为后台开发,使用…...
Vue3入门到实战笔记02
9. watch 作用:监视数据的变化(和Vue2中的watch作用一致)特点:Vue3中的watch只能监视以下四种数据: ref定义的数据。reactive定义的数据。函数返回一个值(getter函数)。一个包含上述内容的数组…...
CDN高防IP:技术解析与相关问题解答
在使用CDN高防IP技术的过程中,可能会遇到一些问题。下面是一些常见问题和相应的解答,希望能帮助读者更好地了解和使用CDN高防IP技术。 问题一:什么是CDN高防IP技术? 解答:CDN高防IP技术是一种通过将网站流量分散到多…...
【React】react组件传参
【React】react组件传参 一、props:父组件向子组件传参1、将普通的参数作为props传递2、将jsx作为props传递(组件插槽)(1)基础功能示例(2)进阶示例 二、自定义事件:子父组件向父组件…...
Vue/html中点击复制到剪贴板
1.使用JQ实现复制功能 html <div class"tran_one tran_yi"><div class"form-group"><textarea>文本</textarea></div><div class"form-group tran_group"><div class"tran_flex tran_left tran_co…...
MtfLive直播导航PHP源码,附带系统搭建教程
将自动采集斗鱼、虎牙、触手、YY、章鱼、电视直播按分类/关键词聚合,用户选择分类,可以观看到全网该关键词下正在直播的内容。 特点 PC站和H5移动站自适应 自动缓存,避免频繁抓取数据 自定义抓取采集规则,同时支持HTML和JSON …...
day19 初始HTML
什么是HTML HTML(Hyper Text Markup Language)超文本标记语言 超文本包括:文字、图片、音频、视频、动画等 HTML5,提供了一些新的元素和一些有趣的新特性,同时也建立了一些新的规则。这些元素、特性和规则的建立&…...
从编程中理解:退一步海阔天空
编程中,“退一步海阔天空”的理念指的是在面对问题时,有时过于纠结于细节或局部优化,反而会陷入困境。这时,如果能暂时放下手中的具体工作,从更高的层面或者换个角度来审视整个系统的设计和架构,可能会发现…...
【前沿技术杂谈:开源软件】引领技术创新与商业模式的革命
【前沿技术杂谈:开源软件】引领技术创新与商业模式的革命 开源软件如何推动技术创新开源软件的开放性和协作精神促进知识共享和技术迭代推动关键技术的发展开源软件与新技术的融合 开源软件的商业模式开源软件的商业模式将开源软件与商业软件相结合 开源软件的安全风…...
使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...
观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...
黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门 A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...
Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)
引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...
EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...
【HTTP三个基础问题】
面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...
【开发技术】.Net使用FFmpeg视频特定帧上绘制内容
目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...
