仓颉开发语言入门教程:常见UI组件介绍和一些问题踩坑

布局王
• 阅读 4

幽蓝君发现一个问题,仓颉开发语言距离发布马上一年了,一些知名App已经使用仓颉开发了许多功能,但是网络上关于仓颉开发语言的教程少之又少,系统性的教程更是没有,仓颉官网的文档也远远不如ArkTS详尽。 现阶段对于想学习仓颉的友友来说非常困难,幽蓝君能做一个针对移动开发者的系列教程,从零开始到一个完整的应用,系统的讲述仓颉开发语言。希望能对大家有所帮助。 今天介绍的是仓颉语言中的UI组件。 仓颉开发语言入门教程:常见UI组件介绍和一些问题踩坑 昨天分享了如何搭建仓颉的开发环境,关于项目的目录结构幽蓝君觉得没有必要再长篇大论,因为和ArkTs非常相似,我们直接到main文件夹下找到index.cj,这就是项目的首页页面,里面有项目初始化的demo。 仓颉开发语言入门教程:常见UI组件介绍和一些问题踩坑 按钮 Button 既然初始代码中已经有button组件,我们就从它开始说起

Button(message).onClick {    evt => AppLog.info("Hello Cangjie")}
.fontSize(40)
.height(80)

这样看起来Button的用法看起来好像和ArkTs区别不大,我们继续为它添加一些属性,看看和ArkTs有什么不同:

Button(message).onClick {    evt => AppLog.info("Hello Cangjie")}
.fontSize(40)
.height(80)
.width(100.percent)
.backgroundColor(Color.BLUE)

我在原有的代码上添加了宽度和背景色属性,可以看到仓颉中的百分比使用的是.percent,对应ArkTs中的100%,背景色中的字母大小写也是需要注意的地方。 文本 Text Text组件比较简单,和按钮属性类似,直接贴代码:

Text('hello')
.fontSize(15)
.fontColor(Color.BLACK)
.textAlign(TextAlign.Center)
.margin(top:10)

图片 Image Image组件最值得注意的地方就是加载图片,下面代码是加载media文件夹下的资源: Image(@r(app.media.startIcon)) 但是幽蓝君一开始遇到了报错: 仓颉开发语言入门教程:常见UI组件介绍和一些问题踩坑 解决方式是把文件上面的一大坨引用删掉: 仓颉开发语言入门教程:常见UI组件介绍和一些问题踩坑 用这几行代码代替:

import ohos.base.*
import ohos.component.*
import ohos.state_manage.*
import ohos.state_macro_manage.*

修改后Image组件可以正常使用: 仓颉开发语言入门教程:常见UI组件介绍和一些问题踩坑 输入框 TextInput 使用TextInput组件最好也是先替换掉上面的一大段引用。 TextInput有三个参数,分别是占位内容,输入框内容和控制器,onChange方法用来监听内容变化:

TextInput(placeholder: '请输入内容', text: this.inputText, controller:inputController)
.onChange({ value: String =>    
    this.inputText = value
  })

再贴一下TextInput控制器的写法,它可以对输入框进行一些操作,比如收起键盘:

var inputController:TextInputController = TextInputController()


this.inputController.stopEditing();

搜索框 Search 搜索框和输入框比较像,以上这些组件最需要习惯的地方就是回调事件的写法,和ArkTs区别较大,贴一下它的使用方法:

var searchController:SearchController = SearchController()
Search(placeholder:'搜索',controller:searchController)
.searchButton('搜索')
.onSubmit({value =>    
  AppLog.info('onSubmit:' + value);    
  })
.onChange({value =>    
  AppLog.info('onChange:' + value);   

 })

仓颉中的组件数量众多,今天就介绍比较常用的几个,关于仓颉语言大家有其他想要了解的也可以私信幽蓝君,感谢您的阅读。#HarmonyOS语言##仓颉##购物#

点赞
收藏
评论区
推荐文章
布局王 布局王
7小时前
仓颉开发语言入门教程:搭建开发环境
仓颉开发语言作为华为为鸿蒙系统自研的开发语言,虽然才发布不久,但是它承担着极其重要的历史使命。作为鸿蒙开发者,掌握仓颉开发语言将成为不可或缺的技能,今天我们从零开始,为大家分享仓颉语言的开发教程,今天要分享的是搭建开发环境。仓颉在DevEcostudio和
布局王 布局王
7小时前
鸿蒙仓颉开发语言实战教程:实现商城应用详情页
昨天有朋友提到鸿蒙既然有了ArkTs开发语言,为什么还需要仓颉开发语言。其实这个不难理解,安卓有Java和Kotlin,iOS先后推出了ObjectiveC和Swift,鸿蒙有两种开发语言也就不奇怪了。而且仓颉是比ArkTs更加灵活的语言,虽然现在了解它的
布局王 布局王
7小时前
鸿蒙仓颉开发语言实战教程:自定义组件
关于仓颉开发语言我们已经连续分享了很多天,相信大家对于仓颉开发语言已经有了一定的了解。今天我们继续进阶,分享一个仓颉开发语言中的自定义组件知识。本文案例就以上一篇文章中的自定义tabbar为例,因为我们自己开发的tabbar一直放在index.cj文件中总
布局王 布局王
7小时前
鸿蒙仓颉语言开发教程:页面和组件的生命周期
大家下午好,今天要分享的内容是仓颉开发语言中的生命周期。其实幽蓝君比较喜欢分享代码,不太喜欢讲太理论的东西,今天之所以单独写一篇文章分享生命周期的内容,因为这部分内容如果不讲一下还真是容易踩坑。生命周期指的是页面或者组件从加载、显示到消失的过程,在这个过程
布局王 布局王
7小时前
鸿蒙仓颉语言开发教程:网络请求和数据解析
现在我能理解华为方面不断的鼓励大家在网络上贡献自己的教程。没有教程,没有参考文献,仓颉购物应用的开发过程真是举步维艰,每一步都是摸着石头过河,不过希望通过幽蓝君的文章能让大家少走一些弯路。今天就以购物应用的分类列表为例,分享在仓颉开发语言中如何进行网络请求
布局王 布局王
7小时前
鸿蒙仓颉语言开发教程:自定义弹窗
假期第一天,祝大家端午节快乐。昨天观看了时代旗舰尊界S800的发布,不得不感慨这车真好啊~放假闲来无事,继续跟大家分享仓颉语言的开发教程,今天介绍一下自定义弹窗。仓颉语言中的自定义弹窗和ArkTs类似,但是还是有一些不同的地方。在仓颉中通过CustomDi
布局王 布局王
7小时前
详解鸿蒙仓颉开发语言中的计时器
今天又到了大家喜闻乐见的科普环节,也可以说是踩坑环节,哈哈哈。今天聊一聊仓颉开发语言中的计时器,这部分可老有意思了。为什么这么说呢,因为关于仓颉的计时器你几乎搜不到任何的文档,也没有相关的代码提示,可以说是一写一个不吱声。但是它还是被幽蓝君发现了蛛丝马迹,
布局王 布局王
7小时前
详解鸿蒙Next仓颉开发语言中的动画
大家上午好,今天来聊一聊仓颉开发语言中的动画开发。仓颉中的动画通常有两种方式,分别是属性动画和显示动画,我们今天以下面的加载动画为例,使用显示动画和属性动画分别实现一下,看看他们有什么区别。显示动画显示动画是幽蓝君比较习惯使用的方式,它主要依赖animat
布局王 布局王
7小时前
详解HarmonyOS NEXT系统中ArkTS和仓颉的混合开发
连续分享了很多天鸿蒙仓颉语言的开发教程,大家现在应该都知道鸿蒙开发有ArkTs和仓颉两种开发语言,这两种语言有些相似,而且还支持混合开发,今天就分享一下怎么实现ArkTs和仓颉的混合开发,分不清这两种语言的友友今天可能要头疼了。官方文档对这两种语言的混合开
布局王 布局王
7小时前
HarmonyOS NEXT仓颉开发语言实战案例:外卖App
各位周末好,今天为大家来仓颉语言外卖App的实战分享。我们可以先分析一下页面的布局结构,它是由导航栏和List容器组成的。幽蓝君目前依然没有找到仓颉语言导航栏的系统组件,还是要自定义,这个导航栏有三部分内容,可以使用两端对齐,要注意的是,如果需要中间部分在