文章目录

前言常用组件快速开启简单的鸿蒙页面总结

一、前言

鸿蒙要想快速上手,那么就需要对基础的组件使用比较熟悉,这里就罗列开发中常见的基础组件的使用。

只要是写android的,对于这些组件的使用还是能很快上手的,只要多多练习。

最后呢,这里会通过基础组件的使用,将他们放到页面中,这样有更直观的体验。

二、常用的基础组件

1、Image

//图片组件

Image($r('app.media.icon'))

// Image($rawfile('test.png')) //如果是rawFile 要加后缀名

.width(50)

.height(50)

.borderRadius(10)

.interpolation(ImageInterpolation.High) //图片的插值效果(去掉锯齿是图片清晰)

.margin({bottom: 10})

.onComplete(img =>{

console.log("图片的宽度:" + img.width)

})

.onError(()=>{

//图片加载报错,走这里

})

2、Text

//文本组件

Text($r('app.string.register'))

.fontSize(20) //字体大小

.lineHeight(30) //行高

.fontColor('#00f') //字体颜色

.fontWeight(FontWeight.Medium)//字体粗细

.margin({bottom: 10})

.onClick(()=>{

console.log('点击事件')

})

3、TextInput

//文本输入框

TextInput({placeholder:'请输入用户名'}) //这里头是提示文本

.width('80%')

.height(40)

.backgroundColor('#cdcdcd')

.margin({left: 10})

//密码输入框

TextInput({placeholder: '请输入密码'})

.width('80%')

.height(40)

.backgroundColor('#cdcdcd')

.type(InputType.Password) //输入文本类型

.showPasswordIcon(true) //是否显示密码icon

.margin({bottom: 10})

.onChange(val=>{

console.log('输入的值为:' + val)

})

.margin({left: 10})

4、Slider

//滑动进度条

Slider({

value: this.high,

min: 150,

max: 190,

step:1, //这里代表步长

style: SliderStyle.InSet, //滑动头的是在里面,还是在里面

direction: Axis.Horizontal, //滑动条的方向。默认是横向

reverse: false //进度往哪个方向,是否是反向。默认是往右

}).width('70%')

.trackThickness(20) //滑轨的粗细

.showTips(true) //是否显示进度条百分比

.onChange(val =>{ //获取进度的值

this.high = val

console.log('进度长度:' + val)

})

Text(this.high.toString()).fontSize(20).fontWeight(FontWeight.Medium)

5、Select

//下拉框组件

Select([

{ value: '深圳'},

{ value: '广州'},

{ value: '北京'},

{ value: '上海'}

]).selected(1) //默认选择的城市

.value('请选择城市') //提示文本

.font({size:20, weight: FontWeight.Medium})

.onSelect((index,value) =>{

console.log('选择的城市:' + value)

})

6、Checkbox

Row(){

Text('兴趣:').fontSize(20)

//多选框群组

CheckboxGroup({group: 'checkGroup'})//控制是否全选或者全不选

.selectedColor('#f00')

.selectAll(true) //默认是否全部选中,如果Checkbox 中的select 有值,那么子组件优先级高,这边就不生效

.onChange((itemName: CheckboxGroupResult) =>{ //被选中的组件名及状态。全部选中的状态是0,全不选是2,有选中是1

console.log('选中的框是:'+ itemName.name + ' 状态是:'+ itemName.status.toString())

})

Text('全选').fontSize(20)

Checkbox({name: 'checkbox1', group: 'checkGroup'})

.selectedColor('#f00')//选中的颜色

.select(false) //这个优先级高于多选框群组的selectAll

.onChange((value: Boolean) =>{

console.log('checkbox1 是否选中:' + value)

})

Text('看书').fontSize(20)

Checkbox({name: 'checkbox2', group: 'checkGroup'})

.selectedColor('#f00')//选中的颜色

.select(false)

.onChange((value: Boolean) =>{

console.log('checkbox2 是否选中:' + value)

})

Text('跑步').fontSize(20)

Checkbox({name: 'checkbox3', group: 'checkGroup'})

.selectedColor('#f00')//选中的颜色

.select(false)

.onChange((value: Boolean) =>{

console.log('checkbox3 是否选中:' + value)

})

Text('钓鱼').fontSize(20)

}.width('100%')

.margin({bottom:10})

7、Radio

Row(){

Text('性别:').fontSize(20)

//单选框组件 (记得写多组,不然点击看不出效果)

Radio({value: '男', group: 'sex'})

.height(20)

.width(20)

.checked(true)

.onChange((isChecked: Boolean)=>{

if (isChecked) {

console.log('男生 是否选中:' + isChecked)

}

})

Text('男').fontSize(20)

Radio({value: '女', group: 'sex'})

.height(20)

.width(20)

.checked(true)

.onChange((isChecked: Boolean)=>{

if (isChecked) {

console.log('女生 是否选中:' + isChecked)

}

})

Text('女').fontSize(20)

}.width('100%')

三、布局

1、Column

//垂直方向布局容器

Column({space:20}){ //组件间的间距

Text('组件一').fontSize(20).fontColor('#00f').lineHeight(FontWeight.Medium)

Text('组件二').fontSize(20).fontColor('#00f').lineHeight(FontWeight.Medium)

}.backgroundColor('#f00')

.width('100%')

.height(100)

.justifyContent(FlexAlign.Center)//这里是column里面组件 主轴的布局方式。有居中,有放在开始,有放在结束等。

.alignItems(HorizontalAlign.Start) //这里是column里面组件 交叉轴的布局方式。

2、Row

//水平方向布局容器

Row(){

Text('组件一').fontSize(20).fontColor('#00f').lineHeight(FontWeight.Medium)

Text('组件二').fontSize(20).fontColor('#00f').lineHeight(FontWeight.Medium)

}.backgroundColor('#0f0')

.width('100%')

.height(50)

.justifyContent(FlexAlign.Center)//主轴的布局方式,这是是居中

.alignItems(VerticalAlign.Top) //交叉轴的布局方式,这里是放在顶部

Text('组件三').fontSize(20).fontColor('#00f').lineHeight(FontWeight.Medium)

.margin(20)

3、Stack

//堆叠布局,后面的组件会覆盖在前面的组件上面

Stack(){

Image($r('app.media.icon'))

.width(50)

.height(50)

Text('hello world')//这个控件覆盖在image上面

}

.width('90%')

.border({radius: 20})

.backgroundColor('#f00')

四、快速开启简单的鸿蒙页面

这是根据上面提到的组件和布局整理出来的,一个页面。下面是效果图。

最后呢,将我整理的这些组件都放到这个项目中,后面有新增,也会一并上传。开发中,某些api忘记了,可以重新拿出来看看。

以上代码地址:https://github.com/shenshizhong/ViewUseDemo

总结

1、罗列鸿蒙基础组件的使用 2、几个重要的布局组件的使用 3、快速撸一个简单的鸿蒙页面

如果对你有一点点帮助,那是值得高兴的事情。:) 我的csdn:http://blog.csdn.net/shenshizhong 我的简书:http://www.jianshu.com/u/345daf0211ad

好文阅读

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。