【鸿蒙ArkTs语言TextInput组件的一些常用属性】
鸿蒙ArkTs语言TextInput组件的一些常用属性
一、字体的几个重要属性
可以按下面顺序书写:
字体<字体族>(fontFamily)、颜色(fontColor)、大小<字号>(fontSize)、粗细<自重值>(fontWeight)、行高(lineHeight)
二、布局的几个重要属性
可以按下面顺序书写:
宽度(width)、高度(height)、圆角半径(borderRadius)、背景颜色(backgroundColor)、透明度(opacity)、
主轴对齐方式<Row和Flex是水平方向、Column是垂直方向>(justifyContent)、交叉轴对齐方式<与主轴方向成90度>(alignItems)、
外部退格<边距>(margin)、边框<边界>(border)、内部退格<填充>(padding)、
分配剩余空间权重(layoutWeight)
布局元素组成

-
组件区域(蓝色方块):组件区域表示组件的大小,width、height属性用于设置组件区域的大小。
-
组件内容区(黄色方块):组件内容区大小为组件区域大小减去组件的border值,组件内容区大小会作为组件内容(或者子组件)进行大小测算时的布局测算限制。
-
组件内容(绿色方块):组件内容本身占用的大小,比如文本内容占用的大小。组件内容和组件内容区不一定匹配,比如设置了固定的width和height,此时组件内容的大小就是设置的width和height减去padding和border值,但文本内容则是通过文本布局引擎测算后得到的大小,可能出现文本真实大小小于设置的组件内容区大小,也就是文本内容无法占满文本组件提供的内容区大小。当组件内容和组件内容区大小不一致时,align属性生效,定义组件内容在组件内容区的对齐方式,如居中对齐。
-
组件布局边界(虚线部分):组件通过margin属性设置外边距时,组件布局边界就是组件区域加上margin的大小。
详细参考:https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/ui/arkts-layout-development-overview.md
对齐方式
// 水平方向
HorizontalAlign.Start 左边对齐
HorizontalAlign.Center 居中对齐
HorizontalAlign.End 右边对齐
// 竖直方向
VerticalAlign.Top 顶部对齐
VerticalAlign.Center 居中对齐
VerticalAlign.Bottom 底部对齐
// 主轴方向
FlexAlign.Start 主轴向左对齐
FlexAlign.Center
FlexAlign.End
FlexAlign.SpaceBetween 第一个元素紧贴容器左边缘,最后一个元素紧贴容器右边缘。中间的间距相等,但首尾没有额外间距。A [空格] B [空格] C
FlexAlign.SpaceAround 每个元素的左右两侧都分配相同的空白空间。首尾元素距离容器边缘的距离,等于元素之间间距的一半。[空格] A [空格] B [空格] C [空格]
FlexAlign.SpaceEvenly 所有空白空间(包括容器边缘和元素之间)都完全均匀分配。视觉上所有间距看起来都完全一样,非常对称。[空格] A [空格] B [空格] C [空格]
// 核心区别在于“空白空间”是如何分配的。
-
在 ArkUI 中,FlexAlign 用于 Container(如 Row、Column、Flex)的主轴对齐。
-
HorizontalAlign 通常用于 Text、Image 等组件的内容对齐,或者在特定场景下作为交叉轴对齐的辅助。
三、TextInput的几个重要属性
.enabled(false) // 禁用,整体变灰
.focusable(false) // 不聚焦,也无法修改内容
.focusOnTouch(false) // 单击、双击不聚焦,但长按可以聚焦,从而可以修改内容
.defaultFocus(false) // 初始时默认非聚焦状态
.enableKeyboardOnFocus(false) // 聚焦时不拉起软键盘
.onWillChange((change: EditableTextChangeValue) => {
return false // 不允许修改控件的输入内容,但可以复制
})
.onChange((value: string) => {
this.inputText = value // 输入内容时触发
})
.onSubmit((value: string) => { // 提交内容时触发
// value 是用户输入的字符串
console.info('提交的内容是: ' + value)
// 在这里执行你的业务逻辑,比如搜索、保存等
})
举例:
TextInput({
text: this.fixedPath
})
.type(InputType.Normal)
.fontFamily('HarmonyHeiTi')
.fontColor($r('sys.color.font_primary'))
.fontSize($r('sys.float.Body_L'))
.fontWeight(FontWeight.Normal)
.lineHeight(21)
.width(604)
.height(40)
.borderRadius(8)
.backgroundColor($r('sys.color.comp_background_tertiary'))
.layoutWeight(1)
.defaultFocus(false) // 默认失焦
.focusOnTouch(false) // 单击、双击不聚焦
.enableKeyboardOnFocus(false) // 获焦时,不拉起软键盘
.onWillChange((change: EditableTextChangeValue) => {
return false // 不允许更改
})
参考文档:https://docs.openharmony.cn/pages/v6.1/zh-cn/application-dev/reference/apis-arkui/arkui-ts/ts-basic-components-textinput.md#onsubmit
更多推荐




所有评论(0)