鸿蒙应用开发 | 6大布局之 表格布局(TableLayout)!

大家好,我是你们的朋友 朋哥,鸿蒙应用的布局开发马上就要结束了,布局非常重要,非常重要,非常重要,要尽快学习了。

上一篇原创文章 解读了 鸿蒙开发布局的堆叠布局(StackLayout)

,就是将布局一层一层的叠加起来,可以设置相对的位置,使用场景也比较特殊,使用的比较少,也是相对比较简单的一种布局。

如果有开始学习的开发者可以不断的练习,只有多多练习了才能记住和学会。

简介:

表格布局,就是像表格一样,如果有需要做一个界面效果是一种表格效果,或者九宫格,就需要用这种布局。

给大家做个效果草图,一看就明白。
 

图片

看到没 ,其实就是为了做这种 大小一样的表格样式的。

很多手机app的主页就是这种效果。如下图:
 

图片

 

其实从效果上就能发小,表格布局非常简单,都是固定的大小和样式。
支持的XML属性

属性名称

中文描述

使用案例

alignment_type

对齐方式

ohos:alignment_type="align_edges"

ohos:alignment_type="align_contents"

column_count

列数

ohos:column_count="3"

ohos:column_count="$integer:count"

row_count

行数

ohos:row_count="2"

ohos:row_count="$integer:count"

orientation

排列方向

ohos:orientation="horizontal"

ohos:orientation="vertical"

 

看属性也能明白,表格布局的属性只有6个,使用起来很简单。

下面给一个实例,来说明一下具体的使用和效果:
先看一个效果吧:

图片


代码如下:
resources/base/layout/

<?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:background_element="#87CEEB"
    ohos:layout_alignment="horizontal_center"
    ohos:alignment_type="align_contents" // 对齐方式
    ohos:row_count="3" // 行数
    ohos:column_count="3" // 列数
    ohos:orientation="vertical" // 设置排列方式为竖直,这样会一列一列的排序
    ohos:padding="8vp">
    <Text
        ohos:height="100vp"
        ohos:width="100vp"
        ohos:background_element="#ff1493"
        ohos:margin="8vp"
        ohos:text="1"
        ohos:text_alignment="center"
        ohos:text_size="20fp"/>

    <Text
        ohos:height="100vp"
        ohos:width="100vp"
        ohos:background_element="#ff1493"
        ohos:margin="8vp"
        ohos:text="2"
        ohos:text_alignment="center"
        ohos:text_size="20fp"/>

    <Text
        ohos:height="100vp"
        ohos:width="100vp"
        ohos:background_element="#ff1493"
        ohos:margin="8vp"
        ohos:text="3"
        ohos:text_alignment="center"
        ohos:text_size="20fp"/>

    <Text
        ohos:height="100vp"
        ohos:width="100vp"
        ohos:background_element="#ff1493"
        ohos:margin="8vp"
        ohos:text="4"
        ohos:text_alignment="center"
        ohos:text_size="20fp"/>
    <Text
        ohos:height="100vp"
        ohos:width="100vp"
        ohos:background_element="#ff1493"
        ohos:margin="8vp"
        ohos:text="5"
        ohos:text_alignment="center"
        ohos:text_size="20fp"/>
    <Text
        ohos:height="100vp"
        ohos:width="100vp"
        ohos:background_element="#ff1493"
        ohos:margin="8vp"
        ohos:text="6"
        ohos:text_alignment="center"
        ohos:text_size="20fp"/>
    <Text
        ohos:height="100vp"
        ohos:width="100vp"
        ohos:background_element="#ff1493"
        ohos:margin="8vp"
        ohos:text="7"
        ohos:text_alignment="center"
        ohos:text_size="20fp"/>
    <Text
        ohos:height="100vp"
        ohos:width="100vp"
        ohos:background_element="#ff1493"
        ohos:margin="8vp"
        ohos:text="8"
        ohos:text_alignment="center"
        ohos:text_size="20fp"/>
    <Text
        ohos:height="100vp"
        ohos:width="100vp"
        ohos:background_element="#ff1493"
        ohos:margin="8vp"
        ohos:text="9"
        ohos:text_alignment="center"
        ohos:text_size="20fp"/>
</TableLayout>

来一个详细说明:

1,ohos:alignment_type="align_contents" // 对齐方式   
对其方式主要针对内容的 对齐
2,ohos:row_count="3" //  显示的行数   
3,ohos:column_count="3" // 显示的列数   
行数和列数需要根据内容信息的展示。
4,ohos:orientation="vertical" // 设置排列方式为竖直,这样会一列一列的排序,次序一列为主
,设置排列方式为水平 horizontal,这样会按照行排列显示。

关于表格布局 还是需要特殊场景来使用,不过话说回来了,再做一些表格布局的时候其它布局也能实现,所以灵活应用布局很重要。
 

关注公众号【程序员漫话编程】,后台回复【鸿蒙】,即可获取上千鸿蒙开源组件~

原创不易,有用就关注一下。要是帮到了你 就给个三连吧,多谢支持。
 

觉得不错的小伙伴,记得帮我 点个赞和关注哟,笔芯笔芯~**

作者:码工
 

有问题请留言或者私信,可以 微信搜索:程序员漫话编程,关注公众号获得更多免费学习资料。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
下面是一个使用表格布局TableLayout)来搭建计算器界面的源代码,简单地实现了加减乘除四则运算功能。 请注意,这个代码仅仅是一个基本的示例,仅包含了布局和基本的运算功能,并未添加任何错误处理或其他功能。例如,没有包含输入验证,可以输入数字和运算符的长度、类型等都没有做判断。 ```java import android.os.Bundle; import android.view.Gravity; import android.view.View; import android.widget.Button; import android.widget.TableLayout; import android.widget.TableRow; import android.widget.TextView; import androidx.appcompat.app.AppCompatActivity; public class CalculatorActivity extends AppCompatActivity implements View.OnClickListener { private TextView resultTextView; // 显示计算结果的TextView private String currentNumber; // 当前输入的数字 private String currentOperator; // 当前选择的运算符 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_calculator); resultTextView = findViewById(R.id.result_text_view); currentNumber = ""; currentOperator = ""; // 获取TableLayout布局对象 TableLayout tableLayout = findViewById(R.id.table_layout); // 设置TableLayout的属性 tableLayout.setStretchAllColumns(true); tableLayout.setShrinkAllColumns(true); // 创建一个2D数组表示表格布局 String[][] buttonTexts = { {"7", "8", "9", "+"}, {"4", "5", "6", "-"}, {"1", "2", "3", "x"}, {"0", ".", "=", "/"} }; // 遍历2D数组,动态创建并添加Button到TableLayout中 for (int row = 0; row < buttonTexts.length; row++) { TableRow tableRow = new TableRow(this); for (int col = 0; col < buttonTexts[row].length; col++) { Button button = new Button(this); button.setText(buttonTexts[row][col]); button.setOnClickListener(this); button.setPadding(16, 16, 16, 16); TableRow.LayoutParams layoutParams = new TableRow.LayoutParams( TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT ); layoutParams.gravity = Gravity.CENTER; tableRow.addView(button, layoutParams); } tableLayout.addView(tableRow); } } @Override public void onClick(View view) { // 获取点击的按钮的文本 String buttonText = ((Button) view).getText().toString(); // 判断按钮的类型 try { int number = Integer.parseInt(buttonText); currentNumber += buttonText; resultTextView.setText(currentNumber); } catch (NumberFormatException e) { // 按钮不是数字,是运算符或其他特殊符号 switch (buttonText) { case "+": case "-": case "x": case "/": currentOperator = buttonText; break; case "=": calculateResult(); break; } } } private void calculateResult() { int result = 0; // 根据运算符进行四则运算 switch (currentOperator) { case "+": result = Integer.parseInt(currentNumber) + Integer.parseInt(resultTextView.getText().toString()); break; case "-": result = Integer.parseInt(currentNumber) - Integer.parseInt(resultTextView.getText().toString()); break; case "x": result = Integer.parseInt(currentNumber) * Integer.parseInt(resultTextView.getText().toString()); break; case "/": result = Integer.parseInt(currentNumber) / Integer.parseInt(resultTextView.getText().toString()); break; } // 更新显示结果 resultTextView.setText(String.valueOf(result)); currentNumber = ""; currentOperator = ""; } } ``` 上述代码通过TableLayout布局来创建一个4行4列的计算器界面,并通过点击按钮的事件监听来处理按钮的点击事件。可以输入整数和小数点,选择运算符并进行运算,最后在TextView中显示计算结果。 注意:上述代码只是一个简化的示例,未考虑实际使用中可能遇到的各种情况和异常处理。真实的计算器应该有更多的功能和错误处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沉默的闪客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值