色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

鴻蒙ArkTS聲明式組件:TextInput

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-07-03 09:14 ? 次閱讀

TextInput

單行文本輸入框組件。

說明:
開發前請熟悉鴻蒙開發指導文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]
該組件從API Version 7開始支持。后續版本如有新增內容,則采用上角標單獨標記該內容的起始版本。

子組件

接口

TextInput(value?:{placeholder?: ResourceStr, text?: ResourceStr, controller?: TextInputController})

參數

參數名參數類型必填參數描述
placeholder[ResourceStr]設置無輸入時的提示文本。
text[ResourceStr]設置輸入框當前的文本內容。當組件設置[stateStyles]等刷新屬性時,建議通過onChange事件將狀態變量與文本實時綁定,避免組件刷新時TextInput中的文本內容異常。 從API version 10開始,該參數支持[$$]雙向綁定變量。
controller8+[TextInputController]設置TextInput控制器

屬性

除支持[通用屬性]和[文本通用屬性]的fontColor、fontSize、fontStyle、fontWeight、fontFamily外,還支持以下屬性:

名稱參數類型描述
type[InputType]設置輸入框類型。 默認值:InputType.Normal
placeholderColor[ResourceColor]設置placeholder文本顏色。 默認值跟隨主題。
placeholderFont[Font]設置placeholder文本樣式。
enterKeyType[EnterKeyType]設置輸入法回車鍵類型,目前僅支持默認類型顯示。 默認值:EnterKeyType.Done
caretColor[ResourceColor]設置輸入框光標顏色。 默認值:'#007DFF'。
maxLengthnumber設置文本的最大輸入字符數。
inputFilter8+{ value: [ResourceStr], error?: (value: string) => void }正則表達式,匹配表達式的輸入允許顯示,不匹配的輸入將被過濾。目前僅支持單個字符匹配,不支持字符串匹配。 - value:設置正則表達式。 - error:正則匹配失敗時,返回被過濾的內容。
copyOption9+[CopyOptions]設置輸入的文本是否可復制。 默認值:CopyOptions.LocalDevice,支持設備內復制。 設置CopyOptions.None時,當前TextInput中的文字無法被復制或剪切,僅支持粘貼。
showPasswordIcon9+boolean密碼輸入模式時,輸入框末尾的圖標是否顯示。 默認值:true
style9+[TextInputStyle][TextContentStyle]
textAlign9+[TextAlign]設置文本在輸入框中的水平對齊方式。 默認值:TextAlign.Start**說明:**僅支持TextAlign.Start、TextAlign.Center和TextAlign.End。 可通過[align]屬性控制文本段落在垂直方向上的位置,此組件中不可通過align屬性控制文本段落在水平方向上的位置,即align屬性中Alignment.TopStart、Alignment.Top、Alignment.TopEnd效果相同,控制內容在頂部,Alignment.Start、Alignment.Center、Alignment.End效果相同,控制內容垂直居中,Alignment.BottomStart、Alignment.Bottom、Alignment.BottomEnd效果相同,控制內容在底部。
selectedBackgroundColor10+[ResourceColor]設置文本選中底板顏色。 如果未設置透明度,默認為不透明(例如:“0x80000000”為50%透明度黑色)。
caretStyle10+{ width: [Length]}設置光標風格,不支持百分比設置。
caretPosition10+number設置光標位置。
showUnit10+[CustomBuilder]設置控件作為文本框單位。 默認無單位。
showError10+stringundefined
showUnderline10+boolean設置是否開啟下劃線。下劃線默認顏色為'#33182431',默認粗細為1px,文本框尺寸48vp(下劃線只支持InputType.Normal類型)。 默認值:false
passwordIcon10+[PasswordIcon]密碼輸入模式時,設置輸入框末尾的圖標。 默認為系統提供的密碼圖標。
enableKeyboardOnFocus10+booleanTextInput獲焦時,是否綁定輸入法 默認值:true。從API version 10開始,獲焦默認綁定輸入法。
selectionMenuHidden10+boolean設置長按輸入框或者右鍵輸入框時,是否彈出文本選擇菜單。 默認值:false
maxLines10+number設置內聯輸入風格編輯態時文本可顯示的最大行數。 默認值:3**說明:**取值范圍:(0, +∞)。
customKeyboard10+[CustomBuilder]設置自定義鍵盤。**說明:**當設置自定義鍵盤時,輸入框激活后不會打開系統輸入法,而是加載指定的自定義組件,針對系統鍵盤的enterKeyType屬性設置將無效。 自定義鍵盤的高度可以通過自定義組件根節點的height屬性設置,寬度不可設置,使用系統默認值。 自定義鍵盤采用覆蓋原始界面的方式呈現,不會對應用原始界面產生壓縮或者上提。 自定義鍵盤無法獲取焦點,但是會攔截手勢事件。 默認在輸入控件失去焦點時,關閉自定義鍵盤,開發者也可以通過[TextInputController].[stopEditing]方法控制鍵盤關閉。

說明:
[通用屬性padding]的默認值為:
{
top: 8 vp,
right: 16 vp,
bottom: 8 vp,
left: 16 vp
}
從API version 10開始,單行輸入框可設置.width('auto')使組件寬度自適應文本寬度,自適應時組件寬度受constraintSize屬性以及父容器傳遞的最大最小寬度限制,其余使用方式參考[尺寸設置]。

EnterKeyType枚舉說明

名稱描述
Go顯示為前往樣式。
Search顯示為搜索樣式。
Send顯示為發送樣式。
Next顯示為下一個樣式。
Done顯示為確認樣式。

InputType枚舉說明

名稱描述
Normal基本輸入模式。 支持輸入數字、字母、下劃線、空格、特殊字符。
Password密碼輸入模式。支持輸入數字、字母、下劃線、空格、特殊字符。密碼顯示小眼睛圖標并且默認會將文字變成圓點。密碼輸入模式不支持下劃線樣式。
Email郵箱地址輸入模式。支持數字,字母,下劃線,以及@字符(只能存在一個@字符)。
Number純數字輸入模式。
PhoneNumber9+電話號碼輸入模式。 支持輸入數字、+ 、-、*、#,長度不限。

TextInputStyle9+枚舉說明

名稱描述
Default默認風格,光標寬1.5vp,光標高度與文本選中底板高度和字體大小相關。
Inline內聯輸入風格。文本選中底板高度與輸入框高度相同。 內聯輸入是在有明顯的編輯態/非編輯態的區分場景下使用,例如:文件列表視圖中的重命名。 不支持showError屬性。

PasswordIcon10+對象說明

名稱類型必填描述
onIconSrcstring[Resource]
offIconSrcstring[Resource]

事件

除支持[通用事件]外,還支持以下事件:

名稱功能描述
onChange(callback: (value: string) => void)輸入內容發生變化時,觸發該回調。 value:輸入的文本內容。 觸發該事件的條件: 1、鍵盤輸入。 2、粘貼、剪切。 3、鍵盤快捷鍵Ctrl+v。
onSubmit(callback: (enterKey: EnterKeyType) => void)按下輸入法回車鍵觸發該回調,返回值為當前輸入法回車鍵的類型。 enterKeyType:輸入法回車鍵類型。具體類型見[EnterKeyType枚舉說明]。
onEditChange(callback: (isEditing: boolean) => void)8+輸入狀態變化時,觸發該回調。有光標時為編輯態,無光標時為非編輯態。isEditing為true表示正在輸入。
onCopy(callback:(value: string) => void)8+長按輸入框內部區域彈出剪貼板后,點擊剪切板復制按鈕,觸發該回調。 value:復制的文本內容。
onCut(callback:(value: string) => void)8+長按輸入框內部區域彈出剪貼板后,點擊剪切板剪切按鈕,觸發該回調。 value:剪切的文本內容。
onPaste(callback:(value: string) => void)8+長按輸入框內部區域彈出剪貼板后,點擊剪切板粘貼按鈕,觸發該回調。 value:粘貼的文本內容。
onTextSelectionChange(callback: (selectionStart: number, selectionEnd: number) => void)10+文本選擇的位置發生變化時,觸發該回調。 selectionStart:文本選擇區域起始位置,文本框中文字的起始位置為0。 selectionEnd:文本選擇區域結束位置。
onContentScroll(callback: (totalOffsetX: number, totalOffsetY: number) => void)10+文本內容滾動時,觸發該回調。 totalOffsetX:文本在內容區的橫坐標偏移。 totalOffsetY:文本在內容區的縱坐標偏移。

TextInputController8+

TextInput組件的控制器。

導入對象

controller: TextInputController = new TextInputController()

caretPosition8+

caretPosition(value: number): void

設置輸入光標的位置。

參數:

參數名參數類型必填參數描述
valuenumber從字符串開始到光標所在位置的字符長度。

setTextSelection10+

setTextSelection(selectionStart: number, selectionEnd: number): void

設置文本選擇區域并高亮顯示。

參數:

參數名參數類型必填參數描述
selectionStartnumber文本選擇區域起始位置,文本框中文字的起始位置為0。
selectionEndnumber文本選擇區域結束位置。

stopEditing10+

stopEditing(): void

退出編輯態。

getTextContentRect10+

getTextContentRect(): [RectResult]

獲取已編輯文本內容區域相對組件的位置和大小,返回值單位為像素。

返回值:

類型說明
[RectResult]已編輯文本內容的相對組件的位置和大小。

說明:

  • 初始不輸入文本時,返回值中有相對組件的位置信息,大小為0。
  • 返回值中的位置信息是第一個字符相對于可編輯組件的位置。

RectResult10+

位置和大小。

參數類型描述
xnumber水平方向橫坐標。
ynumber豎直方向縱坐標。
widthnumber內容寬度大小。
heightnumber內容高度大小。

getTextContentLineCount10+

getTextContentLineCount(): number

獲取已編輯文本內容的行數。

返回值:

類型說明
number已編輯文本內容行數。HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789是v直接拿

搜狗高速瀏覽器截圖20240326151450.png

示例

示例1

// xxx.ets
@Entry
@Component
struct TextInputExample {
  @State text: string = ''
  controller: TextInputController = new TextInputController()

  build() {
    Column() {
      TextInput({ text: this.text, placeholder: 'input your word...', controller: this.controller })
        .placeholderColor(Color.Grey)
        .placeholderFont({ size: 14, weight: 400 })
        .caretColor(Color.Blue)
        .width(400)
        .height(40)
        .margin(20)
        .fontSize(14)
        .fontColor(Color.Black)
        .inputFilter('[a-z]', (e) = > {
          console.log(JSON.stringify(e))
        })
        .onChange((value: string) = > {
          this.text = value
        })
      Text(this.text)
      Button('Set caretPosition 1')
        .margin(15)
        .onClick(() = > {
          // 將光標移動至第一個字符后
          this.controller.caretPosition(1)
        })
      // 密碼輸入框
      TextInput({ placeholder: 'input your password...' })
        .width(400)
        .height(40)
        .margin(20)
        .type(InputType.Password)
        .maxLength(9)
        .showPasswordIcon(true)
      // 內聯風格輸入框
      TextInput({ text: 'inline style' })
        .width(400)
        .height(50)
        .margin(20)
        .borderRadius(0)
        .style(TextInputStyle.Inline)
    }.width('100%')
  }
}

TextInput

示例2

@Entry
@Component
struct TextInputExample {
  @State PassWordSrc1: Resource = $r('app.media.onIcon')
  @State PassWordSrc2: Resource = $r('app.media.offIcon')
  @State TextError: string = ''
  @State Text: string = ''
  @State NameText: string = 'test'

  @Builder itemEnd() {
    Select([{ value: 'KB' },
      { value: 'MB' },
      { value: 'GB' },
      { value: 'TB', }])
      .height("48vp")
      .borderRadius(0)
      .selected(2)
      .align(Alignment.Center)
      .value('MB')
      .font({ size: 20, weight: 500 })
      .fontColor('#182431')
      .selectedOptionFont({ size: 20, weight: 400 })
      .optionFont({ size: 20, weight: 400 })
      .backgroundColor(Color.Transparent)
      .responseRegion({ height: "40vp", width: "80%", x: '10%', y: '6vp' })
      .onSelect((index: number) = > {
        console.info('Select:' + index)
      })
  }

  build() {
    Column({ space: 20 }) {
      // 自定義密碼顯示圖標
      TextInput({ placeholder: 'user define password icon' })
        .type(InputType.Password)
        .width(380)
        .height(60)
        .passwordIcon({ onIconSrc: this.PassWordSrc1, offIconSrc: this.PassWordSrc2 })
      // 下劃線模式
      TextInput({ placeholder: 'underline style' })
        .showUnderline(true)
        .width(380)
        .height(60)
        .showError('Error')
        .showUnit(this.itemEnd.bind(this))

      Text(`用戶名:${this.Text}`)
        .width('95%')
      TextInput({ placeholder: '請輸入用戶名', text: this.Text })
        .showUnderline(true)
        .width(380)
        .showError(this.TextError)
        .onChange((value: string) = > {
          this.Text = value
        })
        .onSubmit(() = > { // 用戶名不正確會清空輸入框和用戶名并提示錯誤文本
          if (this.Text == this.NameText) {
            this.TextError = ''
          } else {
            this.TextError = '用戶名輸入錯誤'
            this.Text = ''
          }
        })

    }.width('100%')
  }
}

TextInputError

示例3

// xxx.ets
@Entry
@Component
struct TextInputExample {
  controller: TextInputController = new TextInputController()
  @State inputValue: string = ""

  // 自定義鍵盤組件
  @Builder CustomKeyboardBuilder() {
    Column() {
      Button('x').onClick(() = > {
        // 關閉自定義鍵盤
        this.controller.stopEditing()
      })
      Grid() {
        ForEach([1, 2, 3, 4, 5, 6, 7, 8, 9, '*', 0, '#'], (item:number|string) = > {
          GridItem() {
            Button(item + "")
              .width(110).onClick(() = > {
              this.inputValue += item
            })
          }
        })
      }.maxCount(3).columnsGap(10).rowsGap(10).padding(5)
    }.backgroundColor(Color.Gray)
  }

  build() {
    Column() {
      TextInput({ controller: this.controller, text: this.inputValue })
        // 綁定自定義鍵盤
        .customKeyboard(this.CustomKeyboardBuilder()).margin(10).border({ width: 1 })
    }
  }
}

customKeyboard

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 組件
    +關注

    關注

    1

    文章

    512

    瀏覽量

    17814
  • 鴻蒙
    +關注

    關注

    57

    文章

    2345

    瀏覽量

    42822
收藏 人收藏

    評論

    相關推薦

    鴻蒙開發—【擴展textinput組件

    擴展鴻蒙textinput組件,支持快速擴展展性,標題文本等,文本內容雙向綁定、文本組件快速復用。 /** * 單選文本 */ @Component export defaults
    發表于 02-26 16:43

    HarmonyOS/OpenHarmony應用開發-ArkTS聲明開發范式

    軌跡。狀態與數據管理狀態數據管理作為基于ArkTS聲明開發范式的特色,通過功能不同的裝飾器給開發者提供了清晰的頁面更新渲染流程和管道。狀態管理包括UI組件狀態和應用程序狀態,兩者協
    發表于 01-17 15:09

    鴻蒙ArkTS聲明組件:Blank

    空白填充組件,在容器主軸方向上,空白填充組件具有自動填充容器空余部分的能力。僅當父組件為Row/Column/Flex時生效。
    的頭像 發表于 06-19 16:21 ?549次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>聲明</b><b class='flag-5'>式</b><b class='flag-5'>組件</b>:Blank

    鴻蒙ArkTS聲明組件:DataPanel

    數據面板組件,用于將多個數據占比情況使用占比圖進行展示。
    的頭像 發表于 06-21 09:42 ?404次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>聲明</b><b class='flag-5'>式</b><b class='flag-5'>組件</b>:DataPanel

    鴻蒙ArkTS聲明組件:Marquee

    跑馬燈組件,用于滾動展示一段單行文本。僅當文本內容寬度超過跑馬燈組件寬度時滾動,不超過時不滾動。
    的頭像 發表于 06-25 15:52 ?418次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>聲明</b><b class='flag-5'>式</b><b class='flag-5'>組件</b>:Marquee

    鴻蒙ArkTS聲明組件:NavDestination

    作為NavRouter組件的子組件,用于顯示導航內容區。
    的頭像 發表于 06-27 14:05 ?487次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>聲明</b><b class='flag-5'>式</b><b class='flag-5'>組件</b>:NavDestination

    鴻蒙ArkTS聲明組件:PatternLock

    圖案密碼鎖組件,以九宮格圖案的方式輸入密碼,用于密碼驗證場景。手指在PatternLock組件區域按下時開始進入輸入狀態,手指離開屏幕時結束輸入狀態完成密碼輸入。
    的頭像 發表于 06-27 09:59 ?455次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>聲明</b><b class='flag-5'>式</b><b class='flag-5'>組件</b>:PatternLock

    鴻蒙ArkTS聲明組件:【RichText】

    富文本組件,解析并顯示HTML格式文本。
    的頭像 發表于 06-29 09:35 ?714次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>聲明</b><b class='flag-5'>式</b><b class='flag-5'>組件</b>:【RichText】

    鴻蒙ArkTS聲明組件:ScrollBar

    滾動條組件ScrollBar,用于配合可滾動組件使用,如List、Grid、Scroll。
    的頭像 發表于 07-01 15:52 ?518次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>聲明</b><b class='flag-5'>式</b><b class='flag-5'>組件</b>:ScrollBar

    鴻蒙ArkTS聲明組件:Span

    作為Text組件的子組件,用于顯示行內文本的組件
    的頭像 發表于 07-01 09:14 ?458次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>聲明</b><b class='flag-5'>式</b><b class='flag-5'>組件</b>:Span

    鴻蒙ArkTS聲明組件:StepperItem

    用作[Stepper]組件的頁面子組件
    的頭像 發表于 07-02 17:47 ?405次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>聲明</b><b class='flag-5'>式</b><b class='flag-5'>組件</b>:StepperItem

    鴻蒙ArkTS聲明組件:TextArea

    多行文本輸入框組件,當輸入的文本內容超過組件寬度時會自動換行顯示。
    的頭像 發表于 07-02 15:02 ?670次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>聲明</b><b class='flag-5'>式</b><b class='flag-5'>組件</b>:TextArea

    鴻蒙ArkTS聲明組件:TextPicker

    滑動選擇文本內容的組件
    的頭像 發表于 07-03 15:07 ?472次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>聲明</b><b class='flag-5'>式</b><b class='flag-5'>組件</b>:TextPicker

    鴻蒙ArkTS聲明組件:TextTimer

    通過文本顯示計時信息并控制其計時器狀態的組件
    的頭像 發表于 07-03 17:06 ?503次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>聲明</b><b class='flag-5'>式</b><b class='flag-5'>組件</b>:TextTimer

    鴻蒙ArkTS聲明組件:XComponent

    可用于EGL/OpenGLES和媒體數據寫入,并顯示在XComponent組件
    的頭像 發表于 07-05 09:56 ?680次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>聲明</b><b class='flag-5'>式</b><b class='flag-5'>組件</b>:XComponent
    主站蜘蛛池模板: 亚洲欧美成人| 中文字幕中文字幕永久免费| adc免费观看| 久久免费视频1| 亚洲高清有码中文字| 成品片a免人看免费| 美女被艹网站| 在线观看免费视频播放视频| 国产线精品视频在线观看| 欧美 亚洲 日韩 在线综合| 樱花草在线观看影院| 国产永久视频| 亚洲 欧美 国产 综合五月天| 成人动漫百度影音| 热巴两次用约老师屁股发底线球| 在教室伦流澡到高潮H女攻视频| 果冻传媒在线播放 免费观看| 我的好妈妈8高清在线观看WWW| 哒哒哒影院在线观看免费高清| 欧美成人亚洲高清在线观看| 最近免费中文MV在线字幕 | 国产在线亚洲v天堂a| 武侠古典久久亚洲精品| 国产精品爆乳尤物99精品| 日韩亚洲不卡在线视频| 高清欧美一区二区三区| 视频一区国产第一页| 国产成人女人视频在线观看| 婷婷久久综合九色综合伊人色| 国产成人精品免费视频大全可播放的 | 夜蒲团之5阳性之教| 精品亚洲国产熟女福利自在线| 伊人无码高清| 女人会操出水图| 国产a级黄色毛片| 亚洲 成人网| 久久久久久久久性潮| 97超在线视频| 色偷偷亚洲男人天堂| 好硬好湿好爽再深一点视频| 最新快播网站|