Harmony学习(三)------ArkUI(3)

news2024/11/15 11:03:13

1.模版字符串``

let name:string = '模版字符串'
let age:number = 18
console.log('字符串:',`${name}和${age}`)

2.字符串和数字互相转换

//字符串转数字
let str1:string = '1.1'
console.log('转换',Number(str1))   //output:  1.1
console.log('转换',parseInt(str1)) //output:  1
console.log('转换',parseFloat(str1)) //output: 1.1

//数字转字符串
let num1:number = 1
console.log('转换',num1.toString())   //output:  1
console.log('转换',num1.toFixed(2)) //output:  1.00

3.变量

  • 普通变量(不管组件内还是外):只能在初始化时渲染,后续不在刷新
  • 状态变量:需要装饰器@State修饰,改变会引起UI的渲染刷新

4.数组操作

  • 增加:unshift()从开头添加          push()从结尾添加
  • 删除:shift()从开头删        pop()从结尾删   (都会返回删除的项)
  • 任意位置删除或新增:splice(操作的起始位置,删除个数,新增的项1,新增的项2,...)
  • 打印对象数组:JSON.stringify(stuArr)
  • ForEach渲染控制:ForEach(this.titles,(item:string,index) = > {
  • })

5.Grid()  规则的行列布局

Grid(){
      ForEach([1,2,3,4,5,6,7,8,9,10,11,12],()=>{
        GridItem(){
          Column(){

          }
          .width('100%').height('100%')
          .backgroundColor(Color.Green)
          .border({
            width: 1,
            color: '#666',
            style: BorderStyle.Solid
          })
        }
      })
    }
    .backgroundColor(Color.Pink)
    .width('100%')
    .height(500)
    .columnsTemplate('1fr 1fr 1fr 1fr')
    .rowsTemplate('1fr 1fr 1fr')
    .columnsGap(5)
    .rowsGap(5)

6.badge() 角标

Badge({
            count:1,
            position:BadgePosition.RightTop,
            style:{
              fontSize:14,
              badgeSize:20,
              badgeColor:'#fa2a2d'
            }
          }){
            Column(){

            }
            .width('100%').height(200)
            .backgroundColor(Color.Green)
            .border({
              width: 1,
              color: '#666',
              style: BorderStyle.Solid
            })
          }

7.遮罩显隐控制:

  • 透明度:opacity:0=>1
  • 层级:zIndex:-1=>99

8.图片动画

  • 缩放scale: 0=>1
  • .animation({duration:500})

9.Swiper() 轮播

Swiper(){
        Image($r('app.media.ic_gallery_create'))
          .width(200)
          .fillColor(Color.Blue)
        Image($r('app.media.ic_gallery_create'))
          .width(200)
          .fillColor(Color.Blue)
        Image($r('app.media.ic_gallery_create'))
          .width(200)
          .fillColor(Color.Blue)
      }
      .width('100%').height(100)
      .loop(true)
      .autoPlay(true)
      .interval(4000)
      .vertical(false)
      .indicator(
        Indicator.dot()
          .itemWidth(20)
          .itemHeight(20)
          .color(Color.Black)
          .selectedColor(Color.Red)
          .selectedItemWidth(50)
          .selectedItemHeight(20)
      )

10.@Extend  扩展组件(样式和事件)

@Extend(组件名)

function  函数名(参数1,参数2) {}

11.@Styles 抽取通用属性、事件

全局:@Styles function setbg() {}  (不支持传参)

组件内: @Styles setbg() {}(不支持传参)

12.@Bulider 自定义构建函数(结构,样式,事件)

@Builder
function navItem(icon: ResourceStr,txt: string) {

}

13.Scroll

@Entry
@Component
struct Index {
  @State message: string = 'Hello World  哈哈哈hahahahah';
  myScroll:Scroller = new Scroller()
  build() {
    Column() {
      Scroll(this.myScroll){
        //只支持一个组件
        Column() {
          ForEach([1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3], (item: number, index: number) => {
            Text('kkkkkkk')
              .width('100%')
              .height(40)
              .fontSize(20)
              .fontWeight(FontWeight.Bold)
              .fontColor('#666')
              .backgroundColor(Color.Pink)
              .margin(5)
          })
        }
      }
      .width('100%')
      .height(500)
      .scrollable(ScrollDirection.Vertical)
      .scrollBar(BarState.Auto)
      .scrollBarColor(Color.Red)
      .scrollBarWidth(5)
      .edgeEffect(EdgeEffect.Spring)
      .backgroundColor(Color.Yellow)
      .onDidScroll(()=> {
        const y = this.myScroll.currentOffset().yOffset
        console.log('滑动距离:', `y:${y}`);
      })
      Button('控制滚动条位置')
        .width(200).height(40)
        .margin(20)
        .onClick(() => {
          this.myScroll.scrollEdge(Edge.Top)
        })
    }
  }
}

14.Tabs  容器组件

@Entry
@Component
struct Index {
  @State message: string = 'Hello World  哈哈哈hahahahah';
  @State selectedIndex:number = 0
  @Builder
  navItem(index:number, icon: ResourceStr, selectedIcon:ResourceStr, txt: string) {
    Column() {
      Image(index==this.selectedIndex?selectedIcon:icon)
        .width(30)
      Text(txt)
        .fontSize(20)
        .fontWeight(FontWeight.Bold)
        .fontColor(index==this.selectedIndex?Color.Red:Color.Black)
    }
  }

  build() {
    Tabs({barPosition:BarPosition.End}){
      TabContent(){
        Text('首页')
      }
      .tabBar(this.navItem(0,$r('app.media.app_icon'),$r('app.media.app_icon'),'首页'))

      TabContent(){
        Text('我的')
      }
      .tabBar(this.navItem(1,$r('app.media.startIcon'),$r('app.media.app_icon'),'我的'))
    }
    .vertical(false)
    .scrollable(true)
    .animationDuration(0)
    // .barMode(BarMode.Scrollable)  //滚动
    .onChange((index:number) => {
      this.selectedIndex = index
    })
  }
}

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

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

相关文章

笔记:VGGnet的实现

本文为B站UP 霹雳吧啦Wz 图片分类课程学习笔记,用于记录学习历程和个人复习 程序共分为三部分:model,train,predict。model.py用于存放模型,train.py用于存放训练时的程序,predict.py用于存放预测的程序,vgg16Net.pth…

从技术博客到个人 IP 矩阵:全面攻略与实战示例

文章目录 摘要引言创建博客选择平台设计和布局 内容规划明确目标受众设定内容方向制定发布计划 SEO 优化关键词研究内链和外链元标签优化 社交媒体推广选择社交平台制定推广策略 可运行的 Demo 代码模块QA 环节问:如何增加博客的曝光度?问:如…

使用 ChatGPT 检测媒体偏见的潜力和局限性

概述 随着数字时代的到来,信息瞬间传遍全球,但其中也不乏各种偏见。媒体偏见",即对某些观点的选择性报道,会影响人们对某一事件或问题的看法,并对公众舆论产生重大影响。事实上,许多人都认为主要媒体…

国内本地化OCSP服务的SSL证书:提升安全与效率的新选择

在数字化时代,网络安全成为企业运营和用户体验的重要基石。HTTPS(Hypertext Transfer Protocol Secure)作为一种安全的网络协议,通过SSL(Secure Sockets Layer)加密技术,保障了数据传输的机密性…

网络协议二 : 使用Cisco Packet Traceer工具模拟网络环境,集线器,网桥,交换机,路由器,MAC,IP,同一网段,子网掩码,子网划分

1. 安装 Cisco Packet Tracer baidu 网盘地址,感谢大神分享 安装,破解,中文化,都有说明,建议使用7.x的那个版本,感觉比8.x的翻译要完整一点 https://pan.baidu.com/s/18iWBOfhJJRhqgQqdNQcfMQ?pwddcch#…

【考研数学】概率论中集合间的运算图示

今天要给大家分享的笔记是:《概率论中的4种“集”:交集、并集、差集、补集》:

修复msvcp120.dll丢失的问题的几种简单方法,msvcp120.dll是什么

在使用电脑时,你可能会遭遇一个提示称“msvcp120.dll丢失”的错误信息。这个问题比较普遍,主要是因为你的系统中缺失了某个特定的动态链接库(DLL)文件。msvcp120.dll是由 Microsoft Visual C 可再发行包提供的关键文件&#xff0c…

【C++】C++11新增语法(右值引用、完美转法)

文章目录 1.C11新增常用语法1.1 统一的列表初始化1.2 initializer_list初始化1.3 声明相关1.4 继承与多态相关 2. 右值引用与移动语义2.1 左值引用与右值引用2.2 右值引用与移动语义的使用场景2.3 右值引用引用左值(move) 3. 完美转发4. 新的类功能4.1 新增两个默认成员函数4.2…

测试开发面试题,助你拿高薪offer

进入金九银十,很多小伙伴有被动跳槽的打算,所以更新一些测试开发 面试题,希望能帮到大家。 一 请说一下HTTP 状态码 HTTP状态码大致分为5类: 常见的http状态码如下: 二 python中“” 和“ is ”的区别 is 和 都可以进行对象比…

bash: llamafactory-cli: command not found解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

探索翻译新世界:2024年超越期待的翻译应用推荐

现在社会因为交通、互联网的便利,不同国家之间的交流变得简单起来。无论是商务合作、学术研究还是日常沟通,准确、快速地跨越语言障碍都显得尤为重要。今天我来介绍一些和百度翻译类似的多用途的翻译工具。 1.福昕在线翻译 链接一下>>https://fa…

《LeetCode热题100》---<4.子串篇三道>

本篇博客讲解LeetCode热题100道子串篇中的三道题 第一道:和为 K 的子数组 第二道:滑动窗口最大值 第三道:最小覆盖子串 第一道:和为 K 的子数组(中等) 法一:暴力枚举 class Solution {public in…

C语言进阶 13. 文件

C语言进阶 13. 文件 文章目录 C语言进阶 13. 文件13.1. 格式化输入输出13.2. 文件输入输出13.3. 二进制文件13.4. 按位运算13.5. 移位运算13.6. 位运算例子13.7. 位段 13.1. 格式化输入输出 格式化输入输出: printf %[flags][width][.prec][hlL]type scanf %[flags]type %[fl…

yolo格式数据集之空中及地面拍摄道路病害检测7种数据集已划分好|可以直接使用|yolov5|v6|v7|v8|v9|v10通用

yolo格式数据集之空中及地面拍摄道路病害检测7种数据集已划分好|可以直接使用|yolov5|v6|v7|v8|v9|v10通用 本数据为空中及地面拍摄道路病害检测检测数据集,数据集数量如下: 总共有:33585张 训练集:6798张 验证集:3284张 测试集&a…

视频监控国标GB28181平台EasyGBS如何更换默认的SQLite数据库?

视频流媒体安防监控国标GB28181平台EasyGBS视频能力丰富,部署灵活,既能作为业务平台使用,也能作为安防监控视频能力层被业务管理平台调用。国标GB28181视频EasyGBS平台可提供流媒体接入、处理、转发等服务,支持内网、公网的安防视…

数据集相关类代码回顾理解 | np.mean\transforms.Normalize\transforms.Compose\xxx.transform

数据集相关类代码回顾理解 | StratifiedShuffleSplit\transforms.ToTensor\Counter 目录 np.mean transforms.Normalize transforms.Compose xxx.transform np.mean meanRGB[np.mean(x.numpy(),axis(1,2)) for x,_ in train_ds] 计算每个样本的(RGB&#xff0…

鸿蒙应用框架开发【JS注入与执行】 Web

JS注入与执行 介绍 本示例基于H5游戏,通过arkui的button实现对游戏实现基本控制,展示webview的JS注入与执行能力,及native应用与H5的通信能力。 效果预览 使用说明 1.设备连接热点,可访问互联网。 2.打开应用,通过…

【Java】如何避免超预期的高并发压力压垮系统?

一、问题解析 在互联网高可用架构设计中,限流是一种经典的高可用架构模式。因为某些原因,大量用户突然访问我们的系统时,或者有黑客恶意用DoS(Denial of Service,拒绝服务)方式攻击我们的系统时&#xff0…

oracle表、表空间使用空间

文章目录 一、Oracle查询表空间占用情况二、Oracle查询表占用的空间三、Oracle查询表空间使用情况四、Oracle查询每张表占用空间五、表空间大小 TOC 一、Oracle查询表空间占用情况 oracle日常工作中查看表占用空间大小是数据库管理中的基本操作: SELECT a.tablesp…

大龄程序员转型攻略:拥抱人工智能,开启新征程

前言 随着科技的飞速发展,人工智能浪潮席卷全球,相关岗位炙手可热。在这个背景下,许多大龄程序员开始思考如何转型,以适应时代的变化。结合自身编程基础,大龄程序员可以学习机器学习、深度学习算法,投身于…