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,提供了一些新的元素和一些有趣的新特性,同时也建立了一些新的规则。这些元素、特性和规则的建立&…...
从编程中理解:退一步海阔天空
编程中,“退一步海阔天空”的理念指的是在面对问题时,有时过于纠结于细节或局部优化,反而会陷入困境。这时,如果能暂时放下手中的具体工作,从更高的层面或者换个角度来审视整个系统的设计和架构,可能会发现…...
【前沿技术杂谈:开源软件】引领技术创新与商业模式的革命
【前沿技术杂谈:开源软件】引领技术创新与商业模式的革命 开源软件如何推动技术创新开源软件的开放性和协作精神促进知识共享和技术迭代推动关键技术的发展开源软件与新技术的融合 开源软件的商业模式开源软件的商业模式将开源软件与商业软件相结合 开源软件的安全风…...
多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度
一、引言:多云环境的技术复杂性本质 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时,基础设施的技术债呈现指数级积累。网络连接、身份认证、成本管理这三大核心挑战相互嵌套:跨云网络构建数据…...
深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...
Spring AI与Spring Modulith核心技术解析
Spring AI核心架构解析 Spring AI(https://spring.io/projects/spring-ai)作为Spring生态中的AI集成框架,其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似,但特别为多语…...
Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)
在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...
嵌入式常见 CPU 架构
架构类型架构厂商芯片厂商典型芯片特点与应用场景PICRISC (8/16 位)MicrochipMicrochipPIC16F877A、PIC18F4550简化指令集,单周期执行;低功耗、CIP 独立外设;用于家电、小电机控制、安防面板等嵌入式场景8051CISC (8 位)Intel(原始…...
Python网页自动化Selenium中文文档
1. 安装 1.1. 安装 Selenium Python bindings 提供了一个简单的API,让你使用Selenium WebDriver来编写功能/校验测试。 通过Selenium Python的API,你可以非常直观的使用Selenium WebDriver的所有功能。 Selenium Python bindings 使用非常简洁方便的A…...
从物理机到云原生:全面解析计算虚拟化技术的演进与应用
前言:我的虚拟化技术探索之旅 我最早接触"虚拟机"的概念是从Java开始的——JVM(Java Virtual Machine)让"一次编写,到处运行"成为可能。这个软件层面的虚拟化让我着迷,但直到后来接触VMware和Doc…...
jdbc查询mysql数据库时,出现id顺序错误的情况
我在repository中的查询语句如下所示,即传入一个List<intager>的数据,返回这些id的问题列表。但是由于数据库查询时ID列表的顺序与预期不一致,会导致返回的id是从小到大排列的,但我不希望这样。 Query("SELECT NEW com…...
快速排序算法改进:随机快排-荷兰国旗划分详解
随机快速排序-荷兰国旗划分算法详解 一、基础知识回顾1.1 快速排序简介1.2 荷兰国旗问题 二、随机快排 - 荷兰国旗划分原理2.1 随机化枢轴选择2.2 荷兰国旗划分过程2.3 结合随机快排与荷兰国旗划分 三、代码实现3.1 Python实现3.2 Java实现3.3 C实现 四、性能分析4.1 时间复杂度…...
