ArkTS开发系列之基础组件用法的学习(2.3.1上)

上篇回顾 ArkTS开发系列之UI布局用法的学习认识(2.2.2下)

本篇内容 对一些常用基础组件的使用学习

一、知识储备

1. 按钮(Button)

  • 有两种创建形式
    • 不包含子组件
        Button('无子组件')
          .type(ButtonType.Capsule) //设置按钮类型
          .stateEffect(true)
          .backgroundColor(Color.Orange)
    
    • 包含子组件
         Button({ type: ButtonType.Normal, stateEffect: true }) {
             Row() {
               Image($r('app.media.app_icon')).width(30).height(30).margin({ left: 12 })
               Text('logo,有子组件')
                 .fontSize(44).fontColor(Color.Green).margin({ left: 10, right: 10 }) //设置文本样式
             }.alignItems(VerticalAlign.Center)
           }
           .borderRadius(9) //设置按钮圆角
           .backgroundColor(0x00c250).height(40)
    		  ```
    
    

2. 单选框(Radio)

  • 创建方式
          Radio({ value: 'no', group: 'isRight' })
            .checked(false)
    

3. 切换按钮(Toggle)

  • 创建方式有两种

    • 无子组件
      Toggle({type: ToggleType.Switch,isOn: false})
      Toggle({type: ToggleType.Checkbox,isOn: false})
    
    • 包含子组件
      Toggle({ type: ToggleType.Button, isOn: true }) {
        Text('status')//有子组件的创建方式
          .fontColor(Color.Red)
      }.width('80')
      .selectedColor(Color.Yellow)//自定义背景颜色
      .onChange(isOn=>{
        if (isOn) {
          promptAction.showToast({message: '我被选中了'})
        }
      })
    

4. 进度条(Progress)

  • 创建方式
    Progress({value: 24, total: 100, type: ProgressType.Linear})
    

5. 文本显示(Text/Span)

  • 创建方式
      Text('我是文本'){
        Span('我是Span文本')
      }
      Text($r('app.string.app_name'))
        .baselineOffset(0)
        .fontSize(44)
        .fontColor(Color.Pink)
        .border({ width: 1 })
        .padding(10)
        .width(300)
    

6. 输入框(TextInput/TextArea)

  • 创建方式
      TextArea()//多选输入框
      TextInput()//单选输入框
    

7. 自定义弹窗(CustomDialog)

  • 定义弹窗
    @CustomDialog
    struct MyDialog {
      controller: CustomDialogController;
      cancel: () => void;
      confirm: () => void;
    
      build() {
        Column() {
          Text('确认提交吗')
            .fontSize(44)
            .margin(10)
    
          Flex({ justifyContent: FlexAlign.SpaceAround }) {
            Button('取消').onClick(() => {
              this.controller.close()
              this.cancel
            })
              .margin(10)
            Button('确定').onClick(() => {
              this.controller.close()
              this.confirm
            }).margin(10)
          }
        }
      }
    }
    

8. 最后奉上一个登录页面

在这里插入图片描述

二、效果一览

在这里插入图片描述

三、源码剖析

登录页面源码

import pr
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值