ArkTS TextInput和TextArea输入框组件的用法(附带实例)
TextInput、TextArea 是文本输入组件,通常用于响应用户的输入操作,比如评论区的输入、聊天框的输入、表格的输入等;也可以结合其他组件构建功能页面,例如登录和注册页面。
1) 单行输入框的创建示例代码如下:

图 1 单行输入框显示效果
2) 多行输入框的创建示例代码如下:

图 2 多行输入框显示效果
多行输入框文字超出一行时会自动折行,示例代码如下:

图 3 多行文本输入显示效果
默认类型为 Normal。可以通过 type 属性进行设置。下面给出基本输入模式和密码输入模式的示例代码。
1) 基本输入模式的示例代码如下:

图 4 基本输入模式显示效果
2) 密码输入模式的示例代码如下:

图 5 密码型文本输入框显示效果
1) 设置无输入时的提示文本,示例代码如下:

图 6 添加了提示文本的输入框显示效果
2) 设置输入框当前的文本内容,示例代码如下:

图 7 包含默认文本的输入框显示效果
3) 添加 backgroundColor 改变输入框的背景颜色,示例代码如下:

图 8 设置了背景颜色的输入框显示效果

图 9 登录/注册场景的输入框显示效果
创建输入框
TextInput 为单行输入框,TextArea 为多行输入框,可以通过以下接口来创建:
TextInput(value?:{placeholder?: ResourceStr, text?: ResourceStr, controller?:TextInputController})
TextArea(value?:{placeholder?: ResourceStr, text?: ResourceStr, controller?:TextAreaController})
1) 单行输入框的创建示例代码如下:
@Entry
@Component
struct TextInputSample {
build() {
Row() {
TextInput()
}.width('100%').justifyContent(FlexAlign.SpaceEvenly)
.padding({ left: 20, right: 20 })
}
}
显示效果如下图所示:
图 1 单行输入框显示效果
2) 多行输入框的创建示例代码如下:
@Entry
@Component
struct TextAreaSample {
build() {
Row() {
TextArea()
}.width('100%').padding({ left: 20, right: 20 })
}
}
显示效果如下图所示:
图 2 多行输入框显示效果
多行输入框文字超出一行时会自动折行,示例代码如下:
@Entry
@Component
struct TextAreaSample {
build() {
Row() {
TextArea({text:"我是TextArea我是TextArea我是TextArea我是TextArea"}).width(300)
}.width('100%').padding({ left: 20, right: 20 })
}
}
显示效果如下图所示:
图 3 多行文本输入显示效果
设置输入框类型
TextInput 有 9 种可选类型,分别为:- Normal:基本输入模式;
- Password:密码输入模式
- Email:邮箱地址输入模式;
- Number:纯数字输入模式;
- PhoneNumber:电话号码输入模式;
- USER_NAME:用户名输入模式;
- NEW_PASSWORD:新密码输入模式;
- NUMBER_PASSWORD:纯数字密码输入模式;
- NUMBER_DECIMAL:带小数点的数字输入模式。
默认类型为 Normal。可以通过 type 属性进行设置。下面给出基本输入模式和密码输入模式的示例代码。
1) 基本输入模式的示例代码如下:
@Entry
@Component
struct TextInputSample {
build() {
Row() {
TextInput().type(InputType.Normal)
}.width('100%').padding({ left: 20, right: 20 })
}
}
显示效果如下图所示:
图 4 基本输入模式显示效果
2) 密码输入模式的示例代码如下:
@Entry
@Component
struct TextInputSample {
build() {
Row() {
TextInput().type(InputType.Password)
}.width('100%').padding({ left: 20, right: 20 })
}
}
显示效果如下图所示:
图 5 密码型文本输入框显示效果
自定义文本输入组件样式
对于文本输入组件,可以自定义样式。1) 设置无输入时的提示文本,示例代码如下:
@Entry
@Component
struct TextInputSample {
build() {
Row() {
TextInput({ placeholder:'请输入用户名' })
}.width('100%').padding({ left: 20, right: 20 })
}
}
显示效果如下图所示:
图 6 添加了提示文本的输入框显示效果
2) 设置输入框当前的文本内容,示例代码如下:
@Entry
@Component
struct TextInputSample {
build() {
Row() {
TextInput({
placeholder: '请输入用户名',
text: '这是默认的用户名'
})
}.width('100%').padding({ left: 20, right: 20 })
}
}
显示效果如下图所示:
图 7 包含默认文本的输入框显示效果
3) 添加 backgroundColor 改变输入框的背景颜色,示例代码如下:
@Entry
@Component
struct TextInputSample {
build() {
Row() {
TextInput({
placeholder: '我是提示文本',
text: '我是当前文本内容'
}).backgroundColor(Color.Pink)
}.width('100%').padding({ left: 20, right: 20 })
}
}
显示效果如下图所示:
图 8 设置了背景颜色的输入框显示效果
文本输入框添加事件
文本输入框主要用于获取用户输入的信息,然后把信息处理成数据并上传。绑定 onChange 事件可以获取输入框内改变的内容。用户还可以使用通用事件进行相应的交互操作。
TextInput().onChange((value: string) => {
console.info(value);
}).onFocus(() => {
console.info('获取焦点');
})
场景示例
文本输入组件的经典应用场景之一是登录/注册页面,用于让用户进行登录或注册。示例代码如下:
@Entry
@Component
struct TextInputSample {
build() {
Column() {
TextInput({ placeholder: '请输入用户名' }).margin({ top: 20 })
.onSubmit((EnterKeyType) => {
console.info(EnterKeyType + '输入法回车键的类型值')
})
TextInput({ placeholder: '请输入密码' }).type(InputType.Password).margin({ top: 20 })
.onSubmit((EnterKeyType) => {
console.info(EnterKeyType + '输入法回车键的类型值')
})
Button('Sign in').width(150).margin({ top: 20 })
}.padding(20)
}
}
显示效果如下图所示:
图 9 登录/注册场景的输入框显示效果
ICP备案:
公安联网备案: