王学岗鸿蒙开发(北向)——————(四、五、六)ArkUi声明式组件

作者 : admin 本文共1591个字,预计阅读时间需要4分钟 发布时间: 2024-06-16 共1人阅读

王学岗鸿蒙开发(北向)——————(四、五、六)ArkUi声明式组件插图

王学岗鸿蒙开发(北向)——————(四、五、六)ArkUi声明式组件插图(1)

普通组件

王学岗鸿蒙开发(北向)——————(四、五、六)ArkUi声明式组件插图(2)
1,注意,如上图,build只能有一个根节点
2,@Entry表示程序的入口
@Component表示自定义的组件
@Preview表示可以预览
3,图片存放的地方
王学岗鸿蒙开发(北向)——————(四、五、六)ArkUi声明式组件插图(3)
4,王学岗鸿蒙开发(北向)——————(四、五、六)ArkUi声明式组件插图(4)
Image组件最好只给宽度,给了高度又给宽度容易失真。

build() {
    Row() {
      //图片不需要写后缀
      Image($r('app.media.icon'))
        .width(300) //宽有两种写法,1是数字,而是百分比
        .height('40%') //百分比要带引号
        .borderRadius(400) //圆角
        .objectFit(ImageFit.Fill)//填充
        .interpolation(ImageInterpolation.High)//设置差值效果,High可以使图片更清晰
        .onClick(()=>{
          //点击事件
          console.log("我是点击事件")
        })
        .onComplete()//图片加载成功回调函数
        .onError()//图片加载异常的时候回调

    }
    .backgroundColor('green')
    .height('100%')
  }

王学岗鸿蒙开发(北向)——————(四、五、六)ArkUi声明式组件插图(5)
string资源要修改多处
王学岗鸿蒙开发(北向)——————(四、五、六)ArkUi声明式组件插图(6)
王学岗鸿蒙开发(北向)——————(四、五、六)ArkUi声明式组件插图(7)

     Text($r('app.string.module_desc'))
        .fontWeight(FontWeight.Bold)//fontWeight有两种写法
        // .fontWeight(400)//fontWeight这种写法,粗细默认是400,大于400就会加粗
    TextInput({
    //对象属性
         placeholder:'请输入用户名'
       }).width(400)

王学岗鸿蒙开发(北向)——————(四、五、六)ArkUi声明式组件插图(8)
Button组件里可以增加Image组件。

王学岗鸿蒙开发(北向)——————(四、五、六)ArkUi声明式组件插图(9)

容器组件

1,Row

    Row({space:30}){//space表示间隙
        Text('赵云')
        Text('马超')
        Text('张飞')
        Text('黄忠')
      }.backgroundColor('green')
      .width('100%')
      .height(200)
      .justifyContent(FlexAlign.Center)//主轴方向上如何布局
      .alignItems(VerticalAlign.Bottom)//交叉轴的对齐方式

Cloumn

.alignItems(HorizontalAlign.End)

Column主轴的布局
王学岗鸿蒙开发(北向)——————(四、五、六)ArkUi声明式组件插图(10)
row主轴的布局

王学岗鸿蒙开发(北向)——————(四、五、六)ArkUi声明式组件插图(11)
弹性布局组件
王学岗鸿蒙开发(北向)——————(四、五、六)ArkUi声明式组件插图(12)

王学岗鸿蒙开发(北向)——————(四、五、六)ArkUi声明式组件插图(13)
direction的取值有FlexDirection.Row、FlexDirection.RowReverse、FlexDirection.Column、FlexDirection.ColumnReverse
效果图如下

王学岗鸿蒙开发(北向)——————(四、五、六)ArkUi声明式组件插图(14)
FlexWrap的取值有:FlexWrap.Wrap、FlexWrap.NoWrap、FlexWrap.WrapReverse
效果如下图,1 2 3的宽度都是’50%’
王学岗鸿蒙开发(北向)——————(四、五、六)ArkUi声明式组件插图(15)
justifyContent与Column和Row相同
alignItemsFlex
如下图,三个高度不同的元素,取值分别是 ItemAlign.Auto,ItemAlign.Start,ItemAlign.Center,ItemAlign.End,ItemAlign.Stretch,ItemAlign.Baseline
王学岗鸿蒙开发(北向)——————(四、五、六)ArkUi声明式组件插图(16)
alignContent
先看代码

王学岗鸿蒙开发(北向)——————(四、五、六)ArkUi声明式组件插图(17)

王学岗鸿蒙开发(北向)——————(四、五、六)ArkUi声明式组件插图(18)

进阶

Blank组件,类似于flutter的Spacer()填充空白区域

王学岗鸿蒙开发(北向)——————(四、五、六)ArkUi声明式组件插图(19)

王学岗鸿蒙开发(北向)——————(四、五、六)ArkUi声明式组件插图(20)

ForEach(
     item,
     (item:string)=>{
       Text(item)
     },
      //keyGenerator不要用默认的要自己定义,如何定义后面会更新,键生成函数,
      //为数组每一项生成一个唯一标识,组件是否重新渲染的判断标准
   )

arts中,数字等变量 非0非null为true

王学岗鸿蒙开发(北向)——————(四、五、六)ArkUi声明式组件插图(21)

王学岗鸿蒙开发(北向)——————(四、五、六)ArkUi声明式组件插图(22)

王学岗鸿蒙开发(北向)——————(四、五、六)ArkUi声明式组件插图(23)
divider,List的分割线
onReachEnd:用来做上拉加载更多数据
王学岗鸿蒙开发(北向)——————(四、五、六)ArkUi声明式组件插图(24)
王学岗鸿蒙开发(北向)——————(四、五、六)ArkUi声明式组件插图(25)
王学岗鸿蒙开发(北向)——————(四、五、六)ArkUi声明式组件插图(26)
王学岗鸿蒙开发(北向)——————(四、五、六)ArkUi声明式组件插图(27)
王学岗鸿蒙开发(北向)——————(四、五、六)ArkUi声明式组件插图(28)
offset的用法

王学岗鸿蒙开发(北向)——————(四、五、六)ArkUi声明式组件插图(29)
order的用法

王学岗鸿蒙开发(北向)——————(四、五、六)ArkUi声明式组件插图(30)
order值越大,排的越靠前,值的越小,排的越靠后
王学岗鸿蒙开发(北向)——————(四、五、六)ArkUi声明式组件插图(31)
王学岗鸿蒙开发(北向)——————(四、五、六)ArkUi声明式组件插图(32)

王学岗鸿蒙开发(北向)——————(四、五、六)ArkUi声明式组件插图(33)
TabBar的Item可以做一个类,如下图
王学岗鸿蒙开发(北向)——————(四、五、六)ArkUi声明式组件插图(34)

本站无任何商业行为
个人在线分享 » 王学岗鸿蒙开发(北向)——————(四、五、六)ArkUi声明式组件
E-->