ArKTS基础组件3

一.PatternLock

图案密码锁组件,以九宫格图案的方式输入密码,用于密码验证场景

属性:

sideLength:设置组件的宽度和高度(宽高相同)。设置为0或负数时组件不显示。

参数名类型必填说明
valueLength组件的宽度和高度。默认值:288vp

circleRadius:设置宫格中圆点的半径。设置为0或负数时取默认值。

参数名类型必填说明
valueLength

宫格中圆点的半径。

默认值:6vp

 regularColor:设置宫格圆点在“未选中”状态的填充颜色。

参数名类型必填说明
valueResourceColor

宫格圆点在“未选中”状态的填充颜色。

默认值:'#ff182431'

 selectedColor:设置宫格圆点在“选中“状态的填充颜色。

参数名类型必填说明
valueResourceColor

宫格圆点在“选中”状态的填充颜色。

默认值:'#ff182431'

 activeColor:设置宫格圆点在“激活”状态的填充颜色,“激活”状态为手指经过圆点但还未选中的状态。

参数名类型必填说明
valueResourceColor

宫格圆点在“激活”状态的填充颜色。

默认值:'#ff182431'

pathColor:设置连线的颜色。

参数名类型必填说明
valueResourceColor

连线的颜色。

默认值:'#33182431'

 pathStrokeWidth:设置连线的宽度。设置为0或负数时连线不显示。

参数名类型必填说明
valuenumber | string

连线的宽度。

默认值:12vp

 autoReset:设置在完成密码输入后再次在组件区域按下时是否重置组件状态。

参数名类型必填说明
valueboolean

在完成密码输入后再次在组件区域按下时是否重置组件状态。

为true时,完成密码输入后再次在组件区域按下时会重置组件状态(即清除之前输入的密码);为false时,不会重置组件状态。

默认值:true

 activateCircleStyle12+:设置宫格圆点在“激活”状态的背景圆环样式。

参数名类型必填说明
optionsCircleStyleOptions宫格圆点在“激活”状态的背景圆环样式。

CircleStyleOptions12+对象说明: 

名称参数类型必填描述
colorResourceColor

背景圆环颜色。

默认值:与pathColor值相同

radiusLengthMetrics

背景圆环的半径。

默认值:circleRadius的11/6

enableWaveEffectboolean

波浪效果开关。

默认值:true

 onPatternComplet:密码输入结束时触发该回调。

参数名类型必填说明
inputArray<number>与选中宫格圆点顺序一致的数字数组,数字为选中宫格圆点的索引值(第一行圆点从左往右依次为0、1、2,第二行圆点依次为3、4、5,第三行圆点依次为6、7、8)。

 onDotConnect11+:密码输入选中宫格圆点时触发该回调。

示例代码:

 acs:LengthMetrics=new LengthMetrics(10)
  @State onPattern:number[]=[]
  @State pwdMsg:string='请设置密码'
patternLockController: PatternLockController = new PatternLockController()
  @Builder PatternLockTest(){
    Text(this.pwdMsg).fontSize(30)
    Text(this.onPattern.toString()).fontSize(30)
    PatternLock(this.patternLockController)
      .sideLength('100%')
      .circleRadius(10)//圆点半径
      .regularColor('#ccc')//未选中颜色
      .selectedColor('red')//选中颜色
      .activeColor('blue')//激活状态颜色
      .pathColor('#fcf')//连线颜色
      .pathStrokeWidth(5)//连线宽度
      .autoReset(true)//自动重置
      .activateCircleStyle({color:'green',radius:this.acs,enableWaveEffect:true})
      .onPatternComplete((input:Array<number>)=>{//input:输入的数字的数组
        //输入完成后重置
        this.patternLockController.reset()
        if (input.length<5){
          this.pwdMsg='最少连接5个'
          return//结束函数
        }
        if (this.onPattern.length==0) {
          this.onPattern=input
          this.pwdMsg='请再次设置'
        }else {
          if (this.onPattern.toString()==input.toString()) {
            this.pwdMsg='两次密码一致'
            this.patternLockController.setChallengeResult(PatternLockChallengeResult.CORRECT)
            //todo 跳转
          }else {
            this.pwdMsg='两次密码不一致'
            this.patternLockController.setChallengeResult(PatternLockChallengeResult.WRONG)

          }
        }
      })
      .onDotConnect((num)=>{//输入的单个数字
        console.log(`选中数字:${num}`)
      })


  }

 二.Progress

进度条组件,用于显示内容加载或操作处理等进度。

属性:

value:设置当前进度值。设置小于0的数值时置为0,设置大于total的数值时置为total。非法数值不生效。

参数名类型必填说明
valuenumber

当前进度值。

默认值:0

color:设置进度条前景色。

参数名类型必填说明
valueResourceColor | LinearGradient10+

进度条前景色。

默认值:

- Capsule:

API version 9及以下:'#ff007dff'

API version 10:'#33006cde'

API version 11及以上:'#33007dff'

- Ring:

API version 9及以下:'#ff007dff'

API version 10及以上:起始端:'#ff86c1ff',结束端:'#ff254ff7'

- 其他样式:'#ff007dff'

 backgroundColor:设置进度条底色。当设置通用属性backgroundColor时,生效的是进度条的底色,而不是整个Progress组件的背景色。

参数名类型必填说明
valueResourceColor

进度条底色。

默认值:

- Capsule:

API version 9及以下:'#19182431'

API version 10及以上:'#33ffffff'

- Ring:

API version 9及以下:'#19182431'

API version 10:'#08182431'

API version 11及以上:'#0c182431'

- 其他样式:'#19182431'

 style8+:设置组件的样式。

参数名类型必填说明
value

ProgressStyleOptions8+ | CapsuleStyleOptions10+ |

RingStyleOptions10+ | LinearStyleOptions10+ |

ScaleRingStyleOptions10+ | EclipseStyleOptions10+

组件的样式。

- CapsuleStyleOptions:设置Capsule的样式。

- RingStyleOptions:设置Ring的样式。

- LinearStyleOptions:设置Linear的样式。

- ScaleRingStyleOptions:设置ScaleRing的样式。

- EclipseStyleOptions:设置Eclipse的样式。

- ProgressStyleOptions:仅可设置各类型进度条的基本样式。

ProgressStyleOptions,暂不支持其它的参数类型。

 contentModifier12+:定制progress内容区的方法。

参数名类型必填说明
modifierContentModifier<ProgressConfiguration>

在progress组件上,定制内容区的方法。

modifier: 内容修改器,开发者需要自定义class实现ContentModifier接口。

 ProgressConfiguration12+

名称参数类型描述
valuenumber当前进度值。
totalnumber进度总长。

 ProgressStyleOptions8+

名称参数类型必填描述
strokeWidthLength

设置进度条宽度(不支持百分比设置)。

默认值:4.0vp

scaleCountnumber

设置环形进度条总刻度数。

默认值:120

scaleWidthLength

设置环形进度条刻度粗细(不支持百分比设置),刻度粗细大于进度条宽度时,为系统默认粗细。

默认值:2.0vp

enableSmoothEffect10+boolean

进度平滑动效的开关。开启平滑动效后设置进度,进度会从当前值渐变至设定值,否则进度从当前值突变至设定值。

默认值:true

 CapsuleStyleOptions10+

名称参数类型必填描述
borderColorResourceColor

内描边颜色。

默认值:

API version 10:'#33006cde'

API version 11及以上:'#33007dff'

borderWidthLength

内描边宽度(不支持百分比设置)。

默认值:1vp

contentstring文本内容,应用可自定义。
fontFont

文本样式。

默认值:

- 文本大小(不支持百分比设置):12fp

其他文本参数跟随text组件的主题值。

fontColorResourceColor

文本颜色。

默认值:'#ff182431'

enableScanEffectboolean

扫光效果的开关。

默认值:false

showDefaultPercentageboolean

显示百分比文本的开关,开启后会在进度条上显示当前进度的百分比。设置了content属性时该属性不生效。

默认值:false

enableSmoothEffectboolean

进度平滑动效的开关。开启平滑动效后设置进度,进度会从当前值渐变至设定值,否则进度从当前值突变至设定值。

默认值:true

 RingStyleOptions10+:

名称参数类型必填描述
strokeWidthLength

设置进度条宽度(不支持百分比设置),宽度大于等于半径时,默认修改宽度至半径值的二分之一。

默认值:4.0vp

shadowboolean

进度条阴影开关。

默认值:false

statusProgressStatus10+

进度条状态,当设置为LOADING时会开启检查更新动效,此时设置进度值不生效。当从LOADING设置为PROGRESSING,检查更新动效会执行到终点再停止。

默认值: ProgressStatus.PROGRESSING

enableScanEffectboolean

进度条扫光效果的开关。

默认值: false

enableSmoothEffectboolean

进度平滑动效的开关。开启平滑动效后设置进度,进度会从当前值渐变至设定值,否则进度从当前值突变至设定值。

默认值:true

 LinearStyleOptions10+

名称参数类型必填描述
strokeWidthLength

设置进度条宽度(不支持百分比设置)。

默认值:4.0vp

strokeRadiusPX | VP | LPX | Resource

设置线性进度条圆角半径。

取值范围[0, strokeWidth / 2]。默认值:strokeWidth / 2。

enableScanEffectboolean

进度条扫光效果的开关。

默认值: false

enableSmoothEffectboolean

进度平滑动效的开关。开启平滑动效后设置进度,进度会从当前值渐变至设定值,否则进度从当前值突变至设定值。

默认值:true

 ScaleRingStyleOptions10+

名称参数类型必填描述
strokeWidthLength

设置进度条宽度(不支持百分比设置)。

默认值:4.0vp

scaleCountnumber

设置环形进度条总刻度数。

默认值:120

scaleWidthLength

设置环形进度条刻度粗细(不支持百分比设置),刻度粗细大于进度条宽度时,为系统默认粗细。

默认值:2.0vp

enableSmoothEffectboolean

进度平滑动效的开关。开启平滑动效后设置进度,进度会从当前值渐变至设定值,否则进度从当前值突变至设定值。

默认值:true

 EclipseStyleOptions10+

名称参数类型必填描述
enableSmoothEffectboolean

进度平滑动效的开关。开启平滑动效后设置进度,进度会从当前值渐变至设定值,否则进度从当前值突变至设定值。

默认值:true

ProgressStatus10+枚举说明

名称描述
LOADING加载中。
PROGRESSING进度更新中。

示例代码:

@State proValue:number=30
  @Builder ProgressTest(){
  Scroll(){
    Column({space:5}){
      Progress({value:50,total:100,type:ProgressType.Linear})
      Progress({value:50,total:100,type:ProgressType.Ring})
        .height(200)
        .style({
          strokeWidth:10,shadow:true,
          status:ProgressStatus.LOADING,
        })
      Progress({value:50,total:100,type:ProgressType.Eclipse})
        .enabled(true)//进度平滑开关
      Progress({value:50,total:100,type:ProgressType.Capsule})
        .value(this.proValue)//默认值
        // .color('#fcf')//进度条颜色
        .backgroundColor('#ccc')
        .style({
          borderColor:Color.Green,borderWidth:1,
          // content:`下载进度:${this.proValue}%`,
          font:{size:14,style:FontStyle.Italic},fontColor:Color.White,
          enableScanEffect:true,//扫光效果
          showDefaultPercentage:true,//显示百分比
        })
      Progress({value:50,total:100,type:ProgressType.ScaleRing})
        .height(300)
        .style({strokeWidth:50,scaleCount:100,scaleWidth:5,enableSmoothEffect:true})
        .value(this.proValue)
        .onClick(()=>{
          this.proValue+=10
        })
    }
  }
  }

 

 五星好评:

class MyProgressModifier implements ContentModifier<ProgressConfiguration> {
  color: Color = Color.White


  constructor(color:Color) {
    this.color = color
  }
  applyContent() : WrappedBuilder<[ProgressConfiguration]>
  {
    return wrapBuilder(myProgress)
  }
}
@Builder function  myProgress(config: ProgressConfiguration ) {

  Column({space:30}) {
    Text("当前进度:" + config.value + "/" + config.total).fontSize(20)
    Row() {
      Flex({ justifyContent: FlexAlign.SpaceBetween }) {
        Path()
          .width('20%')
          .height('20%')
          .commands('M108 0 L141 70 L218 78.3 L162 131 L175 205 L108 170 L41.2 205 L55 131 L1 78 L75 68 L108 0 Z')
          .fill(config.enabled && config.value >=1 ? (config.contentModifier as MyProgressModifier).color : Color.White)
          .stroke(Color.Black)
          .strokeWidth(3)
        Path()
          .width('20%')
          .height('20%')
          .commands('M108 0 L141 70 L218 78.3 L162 131 L175 205 L108 170 L41.2 205 L55 131 L1 78 L75 68 L108 0 Z')
          .fill(config.enabled && config.value >=2 ? (config.contentModifier as MyProgressModifier).color : Color.White)
          .stroke(Color.Black)
          .strokeWidth(3)
        Path()
          .width('20%')
          .height('20%')
          .commands('M108 0 L141 70 L218 78.3 L162 131 L175 205 L108 170 L41.2 205 L55 131 L1 78 L75 68 L108 0 Z')
          .fill(config.enabled && config.value >=3 ? (config.contentModifier as MyProgressModifier).color : Color.White)
          .stroke(Color.Black)
          .strokeWidth(3)
        Path()
          .width('20%')
          .height('20%')
          .commands('M108 0 L141 70 L218 78.3 L162 131 L175 205 L108 170 L41.2 205 L55 131 L1 78 L75 68 L108 0 Z')
          .fill(config.enabled && config.value >=4 ? (config.contentModifier as MyProgressModifier).color : Color.White)
          .stroke(Color.Black)
          .strokeWidth(3)
        Path()
          .width('20%')
          .height('20%')
          .commands('M108 0 L141 70 L218 78.3 L162 131 L175 205 L108 170 L41.2 205 L55 131 L1 78 L75 68 L108 0 Z')
          .fill(config.enabled && config.value >=5 ? (config.contentModifier as MyProgressModifier).color : Color.White)
          .stroke(Color.Black)
          .strokeWidth(3)
      }.width('100%')
    }
  }.margin({bottom:100})
}






@State wjx:number=0
  myModifer:MyProgressModifier=new MyProgressModifier(Color.Green)
  @Builder ProgressTest2(){
    Progress({value:this.wjx,total:5,type:ProgressType.Ring})
      .contentModifier(this.myModifer)
    Button('++').onClick(()=>{
      if (this.wjx<5){
        this.wjx++
      }
    })
    Button('--').onClick(()=>{
      if (this.wjx>0){
        this.wjx--
      }
    })

  }

 三.QRCode

用于显示单个二维码的组件。

属性:

color:设置二维码颜色。

参数名类型必填说明
valueResourceColor

二维码颜色。默认值:'#ff182431'

backgroundColor: 设置二维码背景颜色。

参数名类型必填说明
valueResourceColor

二维码背景颜色。

默认值:Color.White

从API version 11开始,默认值改为'#ffffffff'。

 contentOpacity11+:设置二维码内容颜色的不透明度。不透明度最小值为0,最大值为1。

参数名类型必填说明
valuenumber | Resource

二维码内容颜色的不透明度。

默认值:1

 示例代码:

  @Builder QrCodeTest(){
  QRCode('hello')
    .color('#fcf')
    .backgroundColor('#abcdef')
    .contentOpacity(0.5)
  }

四. Radio

单选框,提供相应的用户交互选择项。

接口

Radio(options: RadioOptions)

创建单选框组件。

参数名类型必填描述
optionsRadioOptions配置单选框的参数。

 属性:

checked:设置单选框的选中状态。

参数名类型必填说明
valueboolean

单选框的选中状态。

默认值:false

 radioStyle10+:设置单选框选中状态和非选中状态的样式。

参数名类型必填说明
valueRadioStyle单选框选中状态和非选中状态的样式。

 contentModifier12+:定制Radio内容区的方法。

参数名类型必填说明
modifierContentModifier<RadioConfiguration>

在Radio组件上,定制内容区的方法。

modifier: 内容修改器,开发者需要自定义class实现ContentModifier接口。

示例代码:

class MyRadio implements ContentModifier<RadioConfiguration>{
  type: number = 0
  selectedColor:Color = Color.Black

  constructor(numberType: number, colorType:Color) {
    this.type = numberType
    this.selectedColor = colorType
  }
  applyContent(): WrappedBuilder<[RadioConfiguration]> {
    return wrapBuilder(a)
  }
}
@Builder function a(config:RadioConfiguration){
SymbolGlyph($r('sys.symbol.heart_fill'))
  .fontColor(config.checked?[(config.contentModifier as MyRadio).selectedColor]:['gray'])
  .onClick(()=>{
    if (config.checked) {
      config.triggerChange(false)
    }else {
      config.triggerChange(true)
    }
  })
}
@Builder rs(){
    Image($r('app.media.app_icon')).borderRadius(50)
}
myRadio:MyRadio=new MyRadio(0,Color.Red)
  @Builder RadioTest(){
    Row(){
      Text('性别:')
      Radio({value:'男',group:'sex',indicatorType:RadioIndicatorType.DOT})
        .checked(true)
        .radioStyle({
          checkedBackgroundColor:Color.Green,
          uncheckedBorderColor:Color.Orange,
          indicatorColor:Color.Red
        })
      Text('男')
      Radio({value:'女',group:'sex',indicatorType:RadioIndicatorType.CUSTOM})
        .checked(true)
        .radioStyle({
          checkedBackgroundColor:Color.Green,
          uncheckedBorderColor:Color.Orange,
          indicatorColor:Color.Red
        })
      Text('女')
      Radio({value:'鸡',group:'sex',indicatorType:RadioIndicatorType.CUSTOM,
        indicatorBuilder:this.rs()})
        .checked(true)
        .radioStyle({
          checkedBackgroundColor:Color.Green,
          uncheckedBorderColor:Color.Orange,
          indicatorColor:Color.Red
        })
      Text('鸡')
      Radio({value:'鸡2',group:'sex'})
        .contentModifier(this.myRadio)
        .checked(true)

    }.width('100%')
    Row(){
      Radio({value:'a',group:'a'})
        .contentModifier(new MyRadio(1,Color.Red))
      Radio({value:'a',group:'a'})
        .contentModifier(new MyRadio(2,Color.Red))
    }
  }

五. Rating

提供在给定范围内选择评分的组件

属性:

stars:设置评分总数。设置为小于等于0的值时,按默认值显示。

参数名类型必填说明
valuenumber

设置评分总数。

默认值:5

stepSize: 设置操作评级的步长。设置为小于0.1的值时,按默认值显示。

参数名类型必填说明
valuenumber

操作评级的步长。

默认值:0.5

取值范围:[0.1, stars]

 starStyle:设置评分的样式。该属性所支持的图片类型能力参考Image组件。

参数名类型必填说明
value

{

backgroundUri: string,

foregroundUri: string,

secondaryUri?: string

}

backgroundUri:未选中的星级的图片链接,可由用户自定义或使用系统默认图片。

foregroundUri:选中的星级的图片路径,可由用户自定义或使用系统默认图片。

secondaryUri:部分选中的星级的图片路径,可由用户自定义或使用系统默认图片。

说明:

backgroundUri或者foregroundUri或者secondaryUri设置的图片路径错误时,图片不显示。

backgroundUri或者foregroundUri设置为undefined或者空字符串时,rating会选择加载系统默认星型图源。

secondaryUri不设置或者设置的值为undefined或者空字符串时,优先设置为backgroundUri,效果上等同于只设置了foregroundUri、backgroundUri。

 示例代码:

class  MyRating implements  ContentModifier<RatingConfiguration>{
  applyContent(): WrappedBuilder<[RatingConfiguration]> {
   return wrapBuilder(rating)
  }

}

@Builder function rating(config:RatingConfiguration){
  Row(){

    SymbolGlyph(config.rating>0.9?$r('sys.symbol.star_fill'):
    $r('sys.symbol.star'))
      .fontColor(['red'])
      .onClick(()=>{
        config.triggerChange(1)
      })
    SymbolGlyph(config.rating>1?$r('sys.symbol.star_fill'):
    $r('sys.symbol.star'))
      .fontColor(['red'])
      .onClick(()=>{
        config.triggerChange(2)
      })
    SymbolGlyph(config.rating>2?$r('sys.symbol.star_fill'):
    $r('sys.symbol.star'))
      .fontColor(['red'])
      .onClick(()=>{
        config.triggerChange(3)
      })
  }.width('100%')


}
  @Builder ratingTest(){
    Column(){
      Rating({rating:0.5,indicator:true})
      Rating({rating:0.5,indicator:false})
        // .stars(10)//总数
        .stepSize(0.5)//步长
        .starStyle({
          backgroundUri:'/img/startIcon.png',
          foregroundUri:'/img/startIcon.png',
          secondaryUri:'/img/startIcon.png'
        })
        .backgroundColor('red')
      Rating({rating:1,indicator:false})
        .stars(3)
        .stepSize(1)
        .contentModifier(new MyRating())
    }


  }

 

六. RichEditor

支持图文混排和文本交互式编辑的组件。

接口

RichEditor(value: RichEditorOptions)

参数名类型必填说明
valueRichEditorOptions富文本组件初始化选项。

RichEditor(value: RichEditorStyledStringOptions)12+

参数:

参数名类型必填说明
valueRichEditorStyledStringOptions富文本组件初始化选项。

属性:

customKeyboard:设置自定义键盘。

参数名类型必填说明
valueCustomBuilder

自定义键盘。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

options12+KeyboardOptions设置自定义键盘是否支持避让功能。

bindSelectionMenu:设置自定义选择菜单。自定义菜单超长时,建议内部嵌套Scroll组件使用,避免键盘被遮挡。

参数名类型必填说明
spanTypeRichEditorSpanType

菜单的类型。

默认值:

RichEditorSpanType.TEXT

contentCustomBuilder菜单的内容。
responseTypeResponseType | RichEditorResponseType11+

菜单的响应类型。

默认值:

ResponseType.LongPress

optionsSelectionMenuOptions菜单的选项。

copyOptions:设置组件是否支持文本内容可复制粘贴。

参数名类型必填说明
valueCopyOptions

组件支持文本内容是否可复制粘贴。

默认值:CopyOptions.LocalDevice

enterKeyType12+:设置软键盘输入法回车键类型。

参数名类型必填说明
vauleEnterKeyType

键盘输入法回车键类型。

默认为EnterKeyType.NEW_LINE。

示例代码:

 @Builder ratingTest(){
    Column(){
      Rating({rating:0.5,indicator:true})
      Rating({rating:0.5,indicator:false})
        // .stars(10)//总数
        .stepSize(0.5)//步长
        .starStyle({
          backgroundUri:'/img/startIcon.png',
          foregroundUri:'/img/startIcon.png',
          secondaryUri:'/img/startIcon.png'
        })
        .backgroundColor('red')
      Rating({rating:1,indicator:false})
        .stars(3)
        .stepSize(1)
        .contentModifier(new MyRating())
    }


  }
controller:RichEditorController=new RichEditorController()
  @Builder zj(){
    Row().height(30).width('100%').backgroundColor('red')
  }
  @Builder jp(){
   Grid(){
     ForEach(['1','2','3','4','5','6','7','8','9','*','0','#'],(i:string)=>{
       GridItem(){
         Button(i).width(100)
           .onClick(()=>{
             this.controller.setCaretOffset(3)
             console.log('光标位置'+this.controller.getCaretOffset())
             this.controller.addTextSpan(i,{style:{fontColor:'red'}})
           })
       }
     })
     GridItem(){
       Button('添加图片').width(100)
         .onClick(()=>{
          this.controller.addImageSpan($r('app.media.app_icon'),)
         })
     }
     GridItem(){
       Button('添加组件').width(100)
         .onClick(()=>{
           this.controller.addBuilderSpan(this.zj())
         })
     }
     GridItem(){
       Button('添加图标').width(100)
         .onClick(()=>{
           this.controller.addSymbolSpan($r('sys.symbol.circle_below_plus_shield'),{style:{fontSize:20,fontColor:['red']}})
         })
     }
     GridItem(){
       Button('获取样式').width(100)
         .onClick(()=>{
           console.log(this.controller.getTypingStyle().fontColor?.toString())
         })
     }
     GridItem(){
       Button('预设样式').width(100)
         .onClick(()=>{
           this.controller.setTypingStyle({
             fontColor:'blue',fontSize:18,fontWeight:700
           })
         })
     }
     GridItem(){
       Button('修改预设').width(100)
         .onClick(()=>{
           this.controller.setTypingStyle({
             fontColor:'blue',fontSize:18,fontWeight:700
           })
         })
     }

    }.height(500).width('100%').backgroundColor(Color.Orange)
    .maxCount(3).columnsGap(10).rowsGap(10).padding(6)
  }
  @Builder menus(){
    Row(){

    }.height(100).width('100%').backgroundColor(Color.Blue)
  }
  @Builder richTest(){
    RichEditor({controller:this.controller})
      .backgroundColor(Color.Gray).height(200)
      .borderRadius(15)
      .customKeyboard(this.jp())
      .bindSelectionMenu(RichEditorSpanType.TEXT,this.menus(),
      RichEditorResponseType.RIGHT_CLICK)
      .copyOptions(CopyOptions.LocalDevice)
      .placeholder('请输入文本',{font:{size:18},fontColor:Color.White})
      .caretColor(Color.Green)
      .selectedBackgroundColor(Color.Red)
      .enterKeyType(EnterKeyType.Go)//软键盘的enter键

  }
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python2:数据、运算符与表达式

一&#xff0c;数据类型&#xff1a; 数据类型是计算机对现实中数据的抽象&#xff0c;不同的数据类型其存储格式、数据范围、 计算要求都各不相同。 Python中的数据类型可以分为以下三类 基础类型&#xff1a;字符串(str)、整数(int)、实数(float)、布尔(bool)、复数(compl…

tortoisegit推送失败

tortoisegit推送失败 git.exe push --progress -- "origin" testLidar:testLidar /usr/bin/bash: gitgithub.com: No such file or directory fatal: Could not read from remote repository. Please make sure you have the correct access rights and the reposit…

pyinstaller打包资源文件和ini配置文件怎么放

1.如果出现无法成功完成操作&#xff0c;因为文件包含病毒或潜在的垃圾软件&#xff0c;说明你的版本太高&#xff0c;更换pyinstaller版本。 pip install pyinstaller6.2.02.一开始打包的时windows下尽量选择打成文件夹的并且要是带命令行窗口的&#xff0c;容易查看错误。 …

autMan奥特曼机器人-autMan的PHP环境

直装版请自行安装php环境。 docker版本预置了php环境&#xff0c;如下图&#xff1a; 如果使用插件"test php"测试环境时&#xff0c;实时日志有报错如下&#xff1a; 可进入终端&#xff0c;输入两条命令 apk add curl apk add php-curl

uniApp打包H5发布到服务器(docker)

使用docker部署uniApp打包后的H5项目记录&#xff0c;好像和VUE项目打包没什么区别... 用HX打开项目&#xff0c;首先调整manifest.json文件 开始用HX打包 填服务器域名和端口号~ 打包完成后可以看到控制台信息 我们可以在web文件夹下拿到下面打包好的静态文件 用FinalShell或…

【Leetcode】1705. 吃苹果的最大数目

文章目录 题目思路代码复杂度分析时间复杂度空间复杂度 结果总结 题目 题目链接&#x1f517; 有一棵特殊的苹果树&#xff0c;一连 n n n 天&#xff0c;每天都可以长出若干个苹果。在第 i i i 天&#xff0c;树上会长出 a p p l e s [ i ] apples[i] apples[i] 个苹果&a…

4、数据结构与算法解析(C语言版)--栈

栈的数据存储遵循“后进先出的规则”&#xff0c;这在计算机里面是非常有用的&#xff0c;比如word等编辑软件的"撤销"功能&#xff0c;就是使用栈进行实现的。 1、创建项目 main.h #ifndef _MAIN_H #define _MAIN_H#include <stdio.h> #include <stdlib.…

施耐德变频器ATV320系列技术优势:创新与安全并重

在工业自动化领域&#xff0c;追求高效、安全与智能已成为不可阻挡的趋势。施耐德变频器ATV320系列凭借其强大的设计标准和全球认证&#xff0c;成为能够帮助企业降低安装成本&#xff0c;提高设备性能的创新解决方案。 【全球认证&#xff0c;品质保障】ATV320 系列秉持施耐德…

【软考高级】系统架构设计师复习笔记-精华版

文章目录 前言0 系统架构设计师0.1 考架构还是考系分0.2 架构核心知识0.3 架构教材变化 1 计算机操作系统1.1 cpu 组成1.2 内核的五大功能1.3 流水线技术1.4 段页式存储1.5 I/O 软件1.6 文件管理1.7 系统工程相关 2 嵌入式2.1 嵌入式技术2.2 板级支持包&#xff08;BSP&#xf…

并发编程(19)——引用计数型无锁栈

文章目录 十九、day191. 引用计数2. 代码实现2.1 单引用计数器无锁栈2.2 双引用计数器无锁栈 3. 本节的一些理解 十九、day19 上一节我们学习通过侯删链表以及风险指针与侯删链表的组合两种方式实现了并发无锁栈&#xff0c;但是这两种方式有以下缺点&#xff1a; 第一种方式…

大恒相机开发(2)—Python软触发调用采集图像

大恒相机开发&#xff08;2&#xff09;—Python软触发调用采集图像 完整代码详细解读和功能说明扩展学习 这段代码是一个Python程序&#xff0c;用于从大恒相机采集图像&#xff0c;通过软件触发来采集图像。 完整代码 咱们直接上python的完整代码&#xff1a; # version:…

步进电机直线插补

基础原理 代码部分

数据结构经典算法总复习(上卷)

第一章&#xff1a;数据结构导论 无重要考点&#xff0c;仅需了解时间复杂度。 第二章&#xff1a;线性表 1.获得线性表第i个元素 void GetElem_sq(SqList L, int i, ElemType &e) {if (i<1 || i>L.length) ErrorMsg("Invalid i value"); //注意错误监…

Windows11 安装 Ubuntu-20.04,同时安装配置 zsh shell,配置 git 别名(alias),大大提高开发效率

背景&#xff1a;家里配置了一台 Windows 电脑&#xff0c;有时候需要用到 vscode 开发测试一些代码&#xff0c;在使用过程中发现原生 windows 敲代码不是很友好&#xff0c;于是想到配置 wsl&#xff0c;安装 Ubuntu&#xff0c;并安装配置 zsh shell&#xff0c;同时配置 gi…

PE文件结构

PE文件是Windows系统下可执行文件的总称&#xff0c;英文全称 Portable Executable 可移植的可执行文件&#xff0c;常见的有exe、dll、sys、com、ocx 对于学习反&#xff08;木马、免杀、病毒、外挂、内核&#xff09;&#xff0c;了解PE文件结构是非常有必要且非常非常重要的…

Helm 官方脚本

Helm 官方脚本 #!/usr/bin/env bash# Copyright The Helm Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # …

JSON 系列之1:将 JSON 数据存储在 Oracle 数据库中

本文为Oracle数据库JSON学习系列的第一篇&#xff0c;讲述如何将JSON文档存储到数据库中&#xff0c;包括了版本为19c和23ai的情形。 19c中的JSON 先来看一下数据库版本为19c时的情形。 创建表colortab&#xff0c;其中color列的长度设为4000。若color的长度需要设为32767&a…

C语言-结构体内存大小

#include <stdio.h> #include <string.h> struct S1 { char a;//1 int b;//4 char c;//1 }; //分析 默认对齐数 成员对齐数 对齐数(前两个最小值) 最大对齐数 // 8 1 …

PyTorch 神经网络回归(Regression)任务:关系拟合与优化过程

PyTorch 神经网络回归&#xff08;Regression&#xff09;任务&#xff1a;关系拟合与优化过程 本教程介绍了如何使用 PyTorch 构建一个简单的神经网络来实现关系拟合&#xff0c;具体演示了从数据准备到模型训练和可视化的完整过程。首先&#xff0c;利用一维线性空间生成带噪…

渐开线齿轮和摆线齿轮有什么区别?

摆线齿形与渐开线齿形的区别 虽然在比对这两种齿形&#xff0c;但有一个事情希望大家注意&#xff1a;渐开线齿轮只是摆线齿轮的一个特例。 &#xff08;1&#xff09;摆线齿形的压力角在啮合开始时最大&#xff0c;在齿节点减小到零&#xff0c;在啮合结束时再次增大到最大…