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

ability_main.xml,实现计算器键盘按钮

<?xml version="1.0" encoding="utf-8"?>
<TableLayout
    xmlns:ohos="http://schemas.huawei.com/res/ohos"
    ohos:height="match_parent"
    ohos:width="match_parent"
    ohos:row_count="6"
    ohos:column_count="4"
   >
    <Button
        ohos: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"
        />
    <Button
        ohos:height="35vp"
        ohos:width="65vp"
        ohos:text = "7"
        ohos:background_element="#FF7BA4CF"
        ohos:text_size="20fp"
        ohos:margin="6vp"
        />
    <Button
        ohos:height="35vp"
        ohos:width="65vp"
        ohos:text = "8"
        ohos:background_element="#FF7BA4CF"
        ohos:text_size="20fp"
        ohos:margin="6vp"
        />
    <Button
        ohos:height="35vp"
        ohos:width="65vp"
        ohos:text = "9"
        ohos:background_element="#FF7BA4CF"
        ohos:text_size="20fp"
        ohos:margin="6vp"
        />
    <Button
        ohos:height="35vp"
        ohos:width="65vp"
        ohos:text = "/"
        ohos:background_element="#FF7BA4CF"
        ohos:text_size="20fp"
        ohos:margin="6vp"
        />

    <Button
        ohos:height="35vp"
        ohos:width="65vp"
        ohos:text = "4"
        ohos:background_element="#FF59EC23"
        ohos:text_size="20fp"
        ohos:margin="6vp"
        />
    <Button
        ohos:height="35vp"
        ohos:width="65vp"
        ohos:text = "5"
        ohos:background_element="#FF59EC23"
        ohos:text_size="20fp"
        ohos:margin="6vp"
        />
    <Button
        ohos:height="35vp"
        ohos:width="65vp"
        ohos:text = "6"
        ohos:background_element="#FF59EC23"
        ohos:text_size="20fp"
        ohos:margin="6vp"
        />
    <Button
        ohos:height="35vp"
        ohos:width="65vp"
        ohos:text = "*"
        ohos:background_element="#FF59EC23"
        ohos:text_size="20fp"
        ohos:margin="6vp"
        />
    <Button
        ohos:height="35vp"
        ohos:width="65vp"
        ohos:text = "1"
        ohos:background_element="#FF7BA4CF"
        ohos:text_size="20fp"
        ohos:margin="6vp"
        />
    <Button
        ohos:height="35vp"
        ohos:width="65vp"
        ohos:text = "2"
        ohos:background_element="#FF7BA4CF"
        ohos:text_size="20fp"
        ohos:margin="6vp"
        />
    <Button
        ohos:height="35vp"
        ohos:width="65vp"
        ohos:text = "3"
        ohos:background_element="#FF7BA4CF"
        ohos:text_size="20fp"
        ohos:margin="6vp"
        />
    <Button
        ohos:height="35vp"
        ohos:width="65vp"
        ohos:text = "-"
        ohos:background_element="#FF7BA4CF"
        ohos:text_size="20fp"
        ohos:margin="6vp"
        />
    <Button
        ohos:height="35vp"
        ohos:width="65vp"
        ohos:text = "0"
        ohos:background_element="#FF59EC23"
        ohos:text_size="20fp"
        ohos:margin="6vp"
        />
    <Button
        ohos:height="35vp"
        ohos:width="65vp"
        ohos:text = "."
        ohos:background_element="#FF59EC23"
        ohos:text_size="20fp"
        ohos:margin="6vp"
        />
    <Button
        ohos:height="35vp"
        ohos:width="65vp"
        ohos:text = "+"
        ohos:background_element="#FF59EC23"
        ohos:text_size="20fp"
        ohos:margin="6vp"
        />
    <Button
        ohos:height="35vp"
        ohos:width="65vp"
        ohos:text = "="
        ohos:background_element="#FF59EC23"
        ohos:text_size="20fp"
        ohos:margin="6vp"
        />
    <Button
        ohos: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 {
    @Override
    public 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() {
            @Override
            public void onClick(Component component) {
                new ToastDialog(getContext())
                        .setText("点击了清除按钮")
                        .setAlignment(LayoutAlignment.CENTER)
                        .show();
            }
        });


    }

    @Override
    public void onActive() {
        super.onActive();
    }

    @Override
    public void onForeground(Intent intent) {
        super.onForeground(intent);
    }
}

 TableLayout的自有XML属性见下表:

表1 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"

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

深度学习手写字符识别:训练模型

说明 本篇博客主要是跟着B站中国计量大学杨老师的视频实战深度学习手写字符识别。 第一个深度学习实例手写字符识别 深度学习环境配置 可以参考下篇博客&#xff0c;网上也有很多教程&#xff0c;很容易搭建好深度学习的环境。 Windows11搭建GPU版本PyTorch环境详细过程 数…

【数据分析】Excel中的常用函数公式总结

目录 0 引用方式0.1 相对引用0.2 绝对引用0.3 混合引用0.4 3D引用0.5 命名引用 1 基础函数1.1 加法、减法、乘法和除法1.2 平均数1.3 求和1.4 最大值和最小值 2 文本函数2.1 合并单元格内容2.2 查找2.3 替换 3 逻辑函数3.1 IF函数3.2 AND和OR函数3.3 IFERROR函数 4 统计函数4.1…

java设计模式:策略模式

在平常的开发工作中&#xff0c;经常会用到不同的设计模式&#xff0c;合理的使用设计模式&#xff0c;可以提高开发效率&#xff0c;提高代码质量&#xff0c;提高代码的可拓展性和维护性。今天来聊聊策略模式。 策略模式是一种行为型设计模式&#xff0c;运行时可以根据需求动…

分布式session 笔记

概念 解决方案‘ 复制 session同步&#xff0c;让集群下的服务器进行session同步&#xff0c;一种传统的服务器集群session管理机制&#xff0c;常用于服务器不多的集群环境。<br /> 集群下&#xff0c;进行session同步的服务器的session数据是相同的&#xff0c;…

vulhub中spring的CVE-2022-22947漏洞复现

Spring Cloud Gateway是Spring中的一个API网关。其3.1.0及3.0.6版本&#xff08;包含&#xff09;以前存在一处SpEL表达式注入漏洞&#xff0c;当攻击者可以访问Actuator API的情况下&#xff0c;将可以利用该漏洞执行任意命令。 参考链接&#xff1a; https://tanzu.vmware.c…

图论练习1

内容&#xff1a;&#xff0c;拆点&#xff0c;分层&#xff0c;传递&#xff0c;带限制的最小生成树 [HNOI2015]菜肴制作 题目链接 题目大意 有个限制&#xff0c;号菜肴在号前完成在满足限制的条件下&#xff0c;按照出菜( 是为了满足的限制 ) 解题思路 由限制&#xf…

寒假 day1

1、请简述栈区和堆区的区别? 2、有一个整形数组:int arr[](数组的值由外部输入决定)&#xff0c;一个整型变量: x(也 由外部输入决定)。要求: 1)删除数组中与x的值相等的元素 2)不得创建新的数组 3)最多只允许使用单层循环 4)无需考虑超出新数组长度后面的元素&#xff0c;所以…

2024美赛数学建模D题思路分析 - 大湖区水资源问题

1 赛题 问题D&#xff1a;大湖区水资源问题 背景 美国和加拿大的五大湖是世界上最大的淡水湖群。这五个湖泊和连接的水道构成了一个巨大的流域&#xff0c;其中包含了这两个国家的许多大城市地区&#xff0c;气候和局部天气条件不同。 这些湖泊的水被用于许多用途&#xff0…

【数据分享】1929-2023年全球站点的逐日降雪深度数据(Shp\Excel\免费获取)

气象数据是在各项研究中都经常使用的数据&#xff0c;气象指标包括气温、风速、降水、能见度等指标&#xff0c;说到气象数据&#xff0c;最详细的气象数据是具体到气象监测站点的数据&#xff01; 之前我们分享过1929-2023年全球气象站点的逐日平均气温数据、逐日最高气温数据…

二维图像生成 3D 场景:nerfstudio 帮你简化流程 | 开源日报 No.164

nerfstudio-project/nerfstudio Stars: 7.7k License: Apache-2.0 nerfstudio 是一个友好的 NeRFs 协作工作室。 该项目旨在简化创建、训练和测试 NeRFs 的端到端流程&#xff0c;支持更模块化的 NeRFs 实现&#xff0c;并提供了简单的 API。 其主要功能和优势包括&#xff1…

DS:经典算法OJ题(2)

创作不易&#xff0c;友友们给个三连吧&#xff01;&#xff01; 一、旋转数组&#xff08;力扣&#xff09; 经典算法OJ题&#xff1a;旋转数组 思路1&#xff1a;每次挪动1位&#xff0c;右旋k次 时间复杂度&#xff1a;o(N^2) 右旋最好情况&#xff1a;k是n的倍数…

AI大模型专题:企业大模型市场厂商评估报告:滴普科技

今天分享的是AI大模型系列深度研究报告&#xff1a;《AI大模型专题&#xff1a;企业大模型市场厂商评估报告&#xff1a;滴普科技》。 &#xff08;报告出品方&#xff1a;滴普科技&#xff09; 报告共计&#xff1a;22页 研究范围定义 大模型是指通过在海量数据上依托强大算…

ctfshow web-77

开启环境: 先直接用伪协议获取 flag 位置。 c?><?php $anew DirectoryIterator("glob:///*"); foreach($a as $f) {echo($f->__toString(). );} exit(0); ?> 发现 flag36x.txt 文件。同时根目录下还有 readflag&#xff0c;估计需要调用 readflag 获…

海外YouTube视频点赞刷单悬赏任务投资理财源码/tiktok国际版刷单理财

测试环境&#xff1a;Linux系统CentOS7.6、宝塔、PHP7.3、MySQL5.7&#xff0c;根目录public&#xff0c;伪静态Laravel5&#xff0c;开启SSL证书 前端&#xff1a;修改网站的默认文档 index.html 为第一个&#xff0c; index.php 改成第二个 &#xff0c;或者前端访问 index.…

【问题解决】VSCode1.86.0版+拓展Remote-SSHv0.108 无法连接到VSCode服务器(VSCode无法远程连接到Linux)

作者在下午五点左右照常通过VSCode远程连接Ubuntu主机编写代码&#xff0c;突然在一次重启VSCode后&#xff0c;不管如何尝试都连接不到Linux主机&#xff0c;首先自己尝试了重启电脑&#xff0c;无效&#xff1b;然后尝试通过其他软件&#xff08;XShell和Xftp&#xff09;远程…

赎金信[简单]

优质博文&#xff1a;IT-BLOG-CN 一、题目 给你两个字符串&#xff1a;ransomNote和magazine&#xff0c;判断ransomNote能不能由magazine里面的字符构成。如果可以&#xff0c;返回true&#xff1b;否则返回false。magazine中的每个字符只能在ransomNote中使用一次。 示例 …

从 20 多套 MySQL 到 1 套 TiDB丨骏伯网络综合运营管理平台应用实践

原文来源&#xff1a; https://tidb.net/blog/a38c72a4 本文作者&#xff1a;骏伯网络 唐帆&#xff0c;PingCAP 贺美存 骏伯网络简介 广州骏伯网络是一家以数据驱动的科技公司&#xff0c;聚焦移动互联网营销服务&#xff0c;坚持以客户为中心&#xff0c;深耕 APP、运营…

第01课:自动驾驶概述

文章目录 1、无人驾驶行业概述什么是无人驾驶智慧出行大趋势无人驾驶能解决什么问题行业趋势无人驾驶的发展历程探索阶段&#xff08;2004年以前&#xff09;发展阶段&#xff08;2004年-2016年&#xff09;成熟阶段&#xff08;2016年以后&#xff09; 2、无人驾驶技术路径无人…

uniapp开发一个交流社区小程序

uniapp开发一个交流社区小程序 假期的时候简单学了一下uniapp&#xff0c;想开发一款类似百度贴吧的交流社区来练练手。本篇文章主要记录开发过程&#xff0c;文末附上项目地址。 主要需要开发以下几个页面。 信息页面热榜页面用户主页用户信息页 信息页面 该页面的功能主要…

Leetcode的AC指南 —— 栈与队列 :150. 逆波兰表达式求值

摘要&#xff1a; **Leetcode的AC指南 —— 栈与队列 &#xff1a;150. 逆波兰表达式求值 **。题目介绍&#xff1a;给你一个字符串数组 tokens &#xff0c;表示一个根据 逆波兰表示法 表示的算术表达式。 请你计算该表达式。返回一个表示表达式值的整数。 文章目录 一、题目…