文本輸入(TextInput/TextArea)

2024-01-25 13:16 更新

TextInput、TextArea是輸入框組件,通常用于響應(yīng)用戶的輸入操作,比如評論區(qū)的輸入、聊天框的輸入、表格的輸入等,也可以結(jié)合其它組件構(gòu)建功能頁面,例如登錄注冊頁面。具體用法參考TextInputTextArea。

創(chuàng)建輸入框

TextInput為單行輸入框、TextArea為多行輸入框。通過以下接口來創(chuàng)建。

  1. TextArea(value?:{placeholder?: ResourceStr, text?: ResourceStr, controller?: TextAreaController})
  1. TextInput(value?:{placeholder?: ResourceStr, text?: ResourceStr, controller?: TextInputController})
  • 單行輸入框
    1. TextInput()

  • 多行輸入框
    1. TextArea()

    多行輸入框文字超出一行時會自動折行。

    1. TextArea({text:"我是TextArea我是TextArea我是TextArea我是TextArea"}).width(300)

設(shè)置輸入框類型

TextInput有5種可選類型,分別為Normal基本輸入模式、Password密碼輸入模式、Email郵箱地址輸入模式、Number純數(shù)字輸入模式、PhoneNumber電話號碼輸入模式。通過type屬性進(jìn)行設(shè)置:

  • 基本輸入模式(默認(rèn)類型)
    1. TextInput()
    2. .type(InputType.Normal)

  • 密碼輸入模式
    1. TextInput()
    2. .type(InputType.Password)

自定義樣式

  • 設(shè)置無輸入時的提示文本。

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

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

  • 設(shè)置輸入框當(dāng)前的文本內(nèi)容。
    1. TextInput({placeholder:'我是提示文本',text:'我是當(dāng)前文本內(nèi)容'})

  • 添加backgroundColor改變輸入框的背景顏色。
    1. TextInput({placeholder:'我是提示文本',text:'我是當(dāng)前文本內(nèi)容'})
    2. .backgroundColor(Color.Pink)

    更豐富的樣式可以結(jié)合通用屬性實現(xiàn)。

添加事件

文本框主要用于獲取用戶輸入的信息,把信息處理成數(shù)據(jù)進(jìn)行上傳,綁定onChange事件可以獲取輸入框內(nèi)改變的內(nèi)容。用戶也可以使用通用事件來進(jìn)行相應(yīng)的交互操作。

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

場景示例

用于表單的提交,在用戶登錄/注冊頁面,用戶的登錄或注冊的輸入操作。

  1. @Entry
  2. @Component
  3. struct TextInputSample {
  4. build() {
  5. Column() {
  6. TextInput({ placeholder: 'input your username' }).margin({ top: 20 })
  7. .onSubmit((EnterKeyType)=>{
  8. console.info(EnterKeyType+'輸入法回車鍵的類型值')
  9. })
  10. TextInput({ placeholder: 'input your password' }).type(InputType.Password).margin({ top: 20 })
  11. .onSubmit((EnterKeyType)=>{
  12. console.info(EnterKeyType+'輸入法回車鍵的類型值')
  13. })
  14. Button('Sign in').width(150).margin({ top: 20 })
  15. }.padding(20)
  16. }
  17. }

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號