当前位置:   article > 正文

harmony开发之Text组件的使用_harmony app开发 text怎么显示number

harmony app开发 text怎么显示number

TextInput、TextArea是输入框组件,通常用于响应用户的输入操作,比如评论区的输入、聊天框的输入、表格的输入等,也可以结合其它组件构建功能页面,例如登录注册页面。

图片来源黑马程序员

Text组件的使用:

文本显示组件有两种方式,一种是字符串string,一种是读取指定的string格式的字符串!

可以实现,根据限定词,切换指定的国家语言,从而实现设备走向国家化!

Textinput组件的使用:

TextInput有5种可选类型,分别为Normal基本输入模式、Password密码输入模式、Email邮箱地址输入模式、Number纯数字输入模式、PhoneNumber电话号码输入模式。

设置无输入时的提示文本。

TextInput({placeholder:'我是提示文本'})

设置输入框当前的文本内容。

添加backgroundColor改变输入框的背景颜色。

源码部分如下:

  1. @Entry
  2. @Component
  3. struct Index2 {
  4. @State imageWidth: number = 100
  5. build() {
  6. Column() {
  7. Row(){
  8. Image($r('app.media.icon'))
  9. .width(this.imageWidth)//控制图片的大小
  10. }
  11. .width('100')
  12. .height("100")
  13. .justifyContent(FlexAlign.Center)
  14. Row(){
  15. Text($r('app.string.width_label'))
  16. .fontSize(20)
  17. .fontWeight(FontWeight.Bold)
  18. TextInput({text: this.imageWidth.toFixed(0)})
  19. .width(150)
  20. .backgroundColor('#FFF')
  21. .type(InputType.Number)
  22. .onChange( value => { //获取输入
  23. this.imageWidth = parseInt(value)
  24. })
  25. }
  26. .width('100%')
  27. .padding({left: 14, right: 14})
  28. .justifyContent(FlexAlign.SpaceBetween)
  29. Divider()
  30. .width('91%')
  31. Row(){
  32. Button('缩小')
  33. .width(80)
  34. .fontSize(20)
  35. .onClick(() => {
  36. if(this.imageWidth >= 10){
  37. this.imageWidth -= 10
  38. }
  39. })
  40. Button('放大')
  41. .width(80)
  42. .fontSize(20)
  43. .onClick(() => {
  44. if(this.imageWidth < 300){
  45. this.imageWidth += 10
  46. }
  47. })
  48. }
  49. .width('100%')
  50. .margin({ top: 35, bottom: 35 })
  51. .justifyContent(FlexAlign.SpaceEvenly)
  52. Slider({
  53. min: 100,
  54. max: 300,
  55. value: this.imageWidth,
  56. step: 10,
  57. })
  58. .width('100%')
  59. .blockColor('#36D')
  60. .trackThickness(5)
  61. .showTips(true)
  62. .onChange(value => {
  63. this.imageWidth = value
  64. })
  65. }
  66. .width('100%')
  67. .height('100%')
  68. }
  69. }

文本框主要用于获取用户输入的信息,把信息处理成数据进行上传,绑定onChange事件可以获取输入框内改变的内容。

场景示例

用于表单的提交,在用户登录/注册页面,用户的登录或注册的输入操作。

  1. TextInput()
  2. .onChange((value: string) => {
  3. console.info(value);
  4. })
  5. .onFocus(() => {
  6. console.info('获取焦点');
  7. })

TextArea(该组件从API Version 7开始支持。)

多行文本输入框组件,当输入的文本内容超过组件宽度时会自动换行显示。

除支持通用事件外(通用事件包含:宽高,内外边距。),还支持以下事件:

onCopy(callback:(value: string) => void)长按输入框内部区域弹出剪贴板后,点击剪切板复制按钮,触发该回调。当设置CopyOptions.None时,当前TextArea中的文字无法被复制或剪切,仅支持粘贴。

onCut(callback:(value: string) => void)长按输入框内部区域弹出剪贴板后,点击剪切板剪切按钮,触发该回调。

onPaste(callback:(value: string) => void)长按输入框内部区域弹出剪贴板后,点击剪切板粘贴按钮,触发该回调。

caretPosition(value: number): void    可以设置光标的位置。

示例代码如下:

  1. // xxx.ets
  2. @Entry
  3. @Component
  4. struct TextAreaExample {
  5. @State text: string = ''
  6. controller: TextAreaController = new TextAreaController()
  7. build() {
  8. Column() {
  9. TextArea({
  10. placeholder: 'The text area can hold an unlimited amount of text. input your word...',
  11. controller: this.controller
  12. })
  13. .placeholderFont({ size: 16, weight: 400 })//设置placeholder文本样式,包括字体大小,字体粗细,字体族,字体风格。目前仅支持默认字体族。
  14. .width(336)
  15. .height(56)
  16. .margin(20)
  17. .fontSize(16)
  18. .fontColor('#182431')
  19. .backgroundColor('#FFFFFF')
  20. .onChange((value: string) => {
  21. this.text = value
  22. })
  23. Text(this.text)
  24. Button('Set caretPosition 1')
  25. .backgroundColor('#007DFF')//背景颜色
  26. .margin(15)//边距
  27. .onClick(() => {
  28. // 设置光标位置到第一个字符后
  29. this.controller.caretPosition(1)
  30. })
  31. }.width('100%').height('100%').backgroundColor('#F1F3F5')
  32. }
  33. }

以上信息,来自官网手册

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/322076
推荐阅读
相关标签
  

闽ICP备14008679号