HarmonyOS Next星河版笔记--界面开发(2)

news2024/11/26 14:52:08

ArkUI-界面开发

位置:在build(){}中去编写代码

//以前学基础 ->写代码的位置(页面顶部)
@Entry
@Component
struct Index {
  @State message: string = 'Hello World';
//构建 -> 页面
  build() {
    //行

    //列

    RelativeContainer() {
      //文本 函数名(参数) 对象.方法名(参数)枚举.常量名
      Text(this.message)
        .id('HelloWorld')
        .fontSize(50)//设置文本的文字大小
        .fontWeight(FontWeight.Bold)//设置文本的粗细
        .fontColor(Color.Green)//颜色
        .alignRules({
          center: { anchor: '__container__', align: VerticalAlign.Center },
          middle: { anchor: '__container__', align: HorizontalAlign.Center }
        })
    }
    .height('100%')
    .width('100%')
  }
}

1.界面开发布局思路

ArkUI(方舟开发框架)是一套构建鸿蒙应用界面的框架。

构建页面的最小单位就是“组件”(我们在界面中所看到的最小单位都是组件)

组件分类:

  1. 基础组件:界面呈现的基础元素。如:文字、图片、按钮等。
  2. 容器组件:控制布局排布。如:Row行、Column列等。

布局思路:先排版,再放内容。

例:完成界面

组件语法:

        1.容器组件:行Row、列Column

容器组件(){
      //内容
}

        2.基础组件文字Text、图片

基础组件(参数)

分析图片发现为纵向布局,所以列Column在外层。

结构的运行代码:

build(){
  Column(){
         Text('小说简介')
         Row(){
         Text('都市')
         Text('生活')
         Text('情感')
         Text('女频')
         
}
}
}

1.1.组件属性方法

需求:美化组件外观效果 → 组件的属性方法

结构格式:

组件(){}
    .属性方法1(参数)
    .属性方法2(参数)
    .属性方法3(参数)
    ......
常用的组件属性方法
组件属性方法描述
.width(200)宽度
.height(200)高度
.backgroundColor(Color.Pink)背景色
.fontSize(24)字体大小
.fontWeight(FontWeight.Bold)字体粗细

例:从

//以前学基础 ->写代码的位置(页面顶部)
@Entry
@Component
struct Index {
  @State message: string = 'Hello World';
//构建 -> 页面
  build() {
    //布局思路:先排版,在内容。
    //整体:竖排
    Column(){
    //内容
      Text('小说简介')
       // .width('100%')
        .fontSize(20)//字体大小
        .fontWeight(FontWeight.Bold)//字体粗细(可以写100~900的数字)默认400;加粗700
       // .backgroundColor(Color.Green)//背景颜色
    Row(){
      Text('都市')
        .width(50)
        .height(30)
        .backgroundColor(Color.Orange)
      Text('生活')
        .width(50)
        .height(30)
        .backgroundColor(Color.Pink)
      Text('情感')
        .width(50)
        .height(30)
        .backgroundColor(Color.Yellow)
      Text('女频')
        .width(50)
        .height(30)
        .backgroundColor(Color.Gray)
    }
    }.width('100%')
    //.backgroundColor(Color.Orange)

1.2.文本颜色

语法:.fontColor(颜色名)
颜色值说明具体演示
枚举颜色Color.颜色名Color.Red、Color.Pink
#开头的16进制'#df3c50'

Text('小说简介')
.fontColor(Color.Orange)
.fintColor('#df3c50')

注意:写16进制时加单引号。

提示:色值也能在其他写颜色的属性方法中使用,如:背景色。

示例

@Entry
@Component
struct Index {
  @State message: string = 'Hello World';
  build() {
    //1.演示文字颜色(枚举 + 16进制)

    Column(){
      Text('alika')
        //.fontColor(Color.Green)
        .fontColor('#df3c')
        .fontSize(30)

    }

  }
}

运行效果

示例

@Entry
@Component
struct Index {
  @State message: string = 'Hello World';
  build() {
    //2.综合练习:今日头条置顶新闻
//思路:排版 → 内容 → 美化
    Column(){
      Text('武汉,入选北斗规模应用试点城市')
        .width('100%')
        .height(40)
        .fontSize(24)
      Row(){
        Text('置顶  ')
          .fontColor(Color.Red)
          .fontSize(19)
        Text('长江云新闻  ')
          .fontColor(Color.Gray)
          .fontSize(19)
        Text('4680评论  ')
          .fontColor(Color.Gray)
          .fontSize(19)
      }
      .width('100%')

    }
    .width('100%')
  }
}

运行效果

1.3.文本溢出

当文本溢出是会显示省略号,该如何设置?

如:

最后的省略号......

1.3.1.文字溢出省略
语法:.textOverflow({
        overflow:TextOverflow.XXX

})

注意:需要配合.maxLines(行数)使用

1.3.2.行高
语法:.lineHeight(数字)
Text('初始...')
    .textOverflow({
        overflow:TextOverflow.Ellipsis
})
    .maxLines(2)

例:

@Entry
@Component
struct Index {
  @State message: string = 'Hello World';
  build() {
    //构建 → 界面
    Column(){
      Text('初识C语言')
        .width('100%')
        .lineHeight(50)
        .fontSize(26)
        .fontWeight(FontWeight.Bold)
      Text('C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言设计目标是提供一种能以简易的方式编译、处理低级储存器、产生少量的机器码以及不需要任何运作环境支持便能运行的编程语言。' +
        '底层开发:比如说,现在有一部电脑,而这部电脑属于硬件,里面得配有操作系统,像:Windows、Linux等。那么操作系统又如何让电脑工作呢?介于硬件和操作系统的层次:驱动。操作系统之上有:应用层,包括应用软件/QQ/网盘等。而用户所了解的为应用层方面,所以底层开发即为应用层下面一部分。\n')
        .width('100%')
        .lineHeight(25)
        //{}表示对象
        .textOverflow({
          overflow:TextOverflow.Ellipsis//必须配合maxLines才有效果
        })
        .maxLines(2)
    }
    .width('100%')
  }
}

运行效果

1.4.图片组件

作用:界面中显示图片

语法:Image(图片数据源) 支持网络图片资源本地图片资源

网络图片:Image('路径')

本地图片(项目文件夹里的图片):Image($r('app.media.文件名'))

存储位置为:

示例

//网络图片地址:
//https://www.itheima.com/images/logo.png
@Entry
@Component
struct Index {
  @State message: string = 'Hello World';
  build() {
      //1、网络图片加载  Image('')
    Column(){
      Image('https://www.itheima.com/images/logo.png')
        .width(300)
      //2、本地图片加载  Image($r('app.media.文件名'))
      Row(){
        Image($r('app.media.background'))
          .width(500)
      }
    }
  }
}

1.5.输入框和组件

需求:实现登录或注册的排版 → 输入框和按钮组件

TextInpu(参数对象)
    .属性方法()

1.参数对象:placeholder提示文本

2.属性方法:.type(inputType.xxx)设置输入框type类型

type值解释说明
①Normal基本输入模式,无特殊限制
②password密码输入模式
TextInput({
    placeholder:'占位符文本'
}).type(InputType.Password)


//按钮
Button('按钮文本')

简单登录页面

@Entry
@Component
struct Index {
  @State message: string = 'Hello World';
  build() {
      Column( { space:10 } ){
        TextInput({
          placeholder:'请输入用户名'
        })
        TextInput({
          placeholder:'请输入密码框'
        }).type(InputType.Password)
          Button('登录')
            .width(200)
      }

控制column和row内元素的间隙,可以用space

Column({ space: 10 } )
{
        ...
}

1.6.实例

综合实战--华为登录

构建界面思路:

  1. 排版(分析布局)
  2. 内容(基础组件)
  3. 美化(属性方法)
组件(){
//内容
}
.padding(20)
@Entry
@Component
struct Index {
  @State message: string = 'Hello World';
  build() {
   Column({space:20}){
     Image($r('app.media.Huawei'))
       .width(200)
     TextInput({
       placeholder:'请输入用户名'
     })
     TextInput({
       placeholder:'请输入密码'
     }).type(InputType.Password)
     Button('登录')
       .width('100%')
    Row({space:60}){
       Text('前往注册')
       Text('忘记密码')
     }
   }
   .width('100%')
    .padding(20)//内边距
  }
}

运行效果

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

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

相关文章

使用PostgreSQL进行高效数据管理

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 使用PostgreSQL进行高效数据管理 PostgreSQL简介 安装PostgreSQL 在Ubuntu上安装PostgreSQL 在CentOS上安装PostgreSQL 在macOS上…

vue3学习记录-单文件组件 CSS 功能

vue3学习记录-单文件组件 CSS 功能 1.组件作用域 CSS1.1为什么要用到样式穿透(:deep())1.2 插槽选择器:slotted(div)1.3 全局选择器:global 2.CSS Modules2.1 基本用法2.2 自定义注入名称2.3 与组合式 API 一同使用 3.…

3.1 快速启动Flink集群

文章目录 1. 环境配置2. 本地启动3. 集群启动4. 向集群提交作业4.1 提交作业概述4.2 添加打包插件4.3 将项目打包4.4 在Web UI上提交作业4.5 命令行提交作业 在本实战中,我们将快速启动Apache Flink 1.13.0集群,并在Hadoop集群环境中提交作业。首先&…

贪心算法---java---黑马

贪心算法 1)Greedy algorithm 称之为贪心算法或者贪婪算法,核心思想是 将寻找最优解的问题分为若干个步骤每一步骤都采用贪心原则,选取当前最优解因为未考虑所有可能,局部最优的堆叠不一定得到最终解最优 贪心算法例子 Dijkstra while …

产品宣传册如何分享到微信朋友圈

在这个互联网高速发展的时代,微信已经成为我们日常生活中不可或缺的社交工具。作为商家或个人,如何将产品宣传册分享到微信朋友圈,提高产品知名度和影响力,成为了一项至关重要的技能。 那要怎么操作呢? 1. 实用工具&a…

轻松入门WordPress:在Ubuntu上搭建本地网站并配置公网访问地址

文章目录 前言1. 安装WordPress2. 创建WordPress数据库3. 安装相对URL插件4. 安装内网穿透发布网站4.1 命令行方式:4.2. 配置wordpress公网地址 5. 配置WordPress固定公网地址 前言 本文主要介绍如何在Linux Ubuntu系统上使用WordPress搭建一个本地网站&#xff0c…

ubuntu编译内核安装启动

下载源码 apt update apt install linux-source # /usr/src/linux-source-5.4.0/linux-source-5.4.0.tar.bz2 下载源码 tar -jxvf linux-source-5.4.0.tar.bz2 # /usr/src/linux-source-5.4.0 解压源码 安装依赖 sudo apt -y install build-essential sudo apt -y i…

多个锚点定位时的锚点优选方法(附公式和MATLAB代码讲解)

在多锚点定位系统中,锚点的选择对定位精度有重要影响。以下是几种常见的锚点选优方法,配合相应的公式和MATLAB代码示例进行详细分析。 文章目录 基于几何分布的选择基于距离最小化的选择加权优化选择总结基于几何分布的选择 方法描述: 锚点的几何分布影响定位的可辨识性。选…

DICOM标准:US超声模块属性详解——超声医学的DICOM标准解析

引言 数字成像和通信在医学领域中的应用极为广泛,其中DICOM(数字成像和通信医学)标准对于确保不同设备和系统之间的兼容性和互操作性至关重要。本文将详细介绍DICOM标准中关于超声医学(Ultrasound, US)的部分&#xff…

华为鲲鹏一体机 安装笔记

安装驱动 在这个链接 社区版-固件与驱动-昇腾社区 1 下载NPU固件 需要注册登录,否则报错: ERR_NO:0x0091;ERR_DES:HwHiAiUser not exists! Please add HwHi AiUser 准备软件包-软件安装-CANN…

STM32H750 USBCDC配置与使用

STM32H750 USBCDC配置与使用 📍相关参考文章:《STM32 USB CDC VPC》 STM32H750VB有2个USB OTG接口(1FS,1HS/FS)无晶振型解决方案,带有LPM和BCD。 🔖本次使用USB-PTG-FS作为测试 🌿…

引领数字时代:万码优才如何变革IT人才招聘新体验(这里有更精准的推荐)

目录 引领数字时代:万码优才如何变革IT人才招聘新体验引领未来科技,精准链接IT精英精准匹配,高效对接海量资源,覆盖广泛优化体验,简化流程 全面升级:AI赋能数字人才职业成长AI模拟面试职场千问智能简历评估…

网络安全法详细介绍——爬虫教程

目录 [TOC](目录)一、网络安全法详细介绍1. 网络安全法的主要条款与作用2. 网络安全法与爬虫的关系3. 合法使用爬虫的指南 二、爬虫的详细教程1. 准备环境与安装工具2. 使用requests库发送请求3. 解析HTML内容4. 使用robots.txt规范爬虫行为5. 设置请求间隔6. 数据清洗与存储 三…

vscode插件-08 Golang

文章目录 Go安装其他必须软件 Go Go语言环境,只需安装这一个插件。然后通过vscode命令下载安装其他go环境需要的内容。 程序调试,需要创建.vscode文件夹并编写launch.json文件。 安装其他必须软件 ctrlshiftp,调出命令面板,输入…

ConnectX-7 25/50/100/200/400G NIC

ConnectX-7 25/50/100/200/400G NIC ConnectX-7提供了广泛的软件定义、硬件加速的网络、存储和安全功能,使组织能够现代化和保护他们的IT基础设施。此外,ConnectX-7还支持从边缘到核心数据中心到云的敏捷和高性能解决方案,同时增强网络安全性…

windows在两台机器上测试 MySQL 集群实现实时备份

在两台机器上测试 MySQL 集群实现实时备份的基本步骤: 一、环境准备 机器配置 确保两台机器(假设为服务器 A 和服务器 B)能够互相通信,例如它们在同一个局域网内,并且开放了 MySQL 通信所需的端口(默认是 …

uniapp实现中间平滑凸起tabbar

uniapp实现中间平滑凸起tabbar 背景实现思路代码实现尾巴 背景 在移动端开发中,tabar是一个使用频率很高的组件,几乎是每个APP都会用到。今天给大家分享一个中间平滑凸起的tabbar组件,有需要的可以做下参考。先上图镇楼: 实现思…

java版询价采购系统 招投标询价竞标投标系统 招投标公告系统源码

在数字化时代,企业需要借助先进的数字化技术来提高工程管理效率和质量。招投标管理系统作为企业内部业务项目管理的重要应用平台,涵盖了门户管理、立项管理、采购项目管理、采购公告管理、考核管理、报表管理、评审管理、企业管理、采购管理和系统管理等…

YOLOV8目标检测C++推理问题总结

背景 数据集有限,使用paddleOCR直接识别准确率无法达到99%,这里尝试用目标检测对识别得分比较低的图片进行二次处理; 类别数目:数字(10)字母(26)字符(2) 38 …

Python毕业设计选题:基于Hadoop的租房数据分析系统的设计与实现

开发语言:Python框架:flaskPython版本:python3.7.7数据库:mysql 5.7数据库工具:Navicat11开发软件:PyCharm 系统展示 系统首页 房屋信息详情 个人中心 管理员登录界面 管理员功能界面 用户管理界面 房屋信…