TextInput弹出输入法后,HarmonyOS 鸿蒙Next变小

发布于 1周前 作者 yuanlaile 来自 鸿蒙OS

TextInput弹出输入法后,HarmonyOS 鸿蒙Next变小 在一个CustomDialog中有几个输入框,Dialog的宽度设置的是minWidth到MaxWidth。

当输入框获得焦点时,就变小了。如下图:

1.png

设备是模拟器。

2.png


更多关于TextInput弹出输入法后,HarmonyOS 鸿蒙Next变小的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

看下你这部分代码,看截图customdialog也变小了

更多关于TextInput弹出输入法后,HarmonyOS 鸿蒙Next变小的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


Text(app.string.params_setting).titleTextStyle();

ForEach(chunkArray(fields, PARAM_COUNT), (item: Field[], index) -> { Row(){ ForEach(item, (field: Field, childIndex) -> { Text(field.name).itemTitleTextStyle((childIndex > 0) ? true : false); if(field.inputType === FieldInputType.Input){ if(field.dataType === FieldDataType.DateTime) { Text(field.defaultValue).itemTextStyle().onClick(() -> { fieldId = field.id; calendarDialog?.open(); }); } else { TextInput({ text : field.defaultValue }).textInputStyle().onChange((value) -> { field.defaultValue = value }); } } else if(field.inputType === FieldInputType.List) { Select(fieldConvertOptions(field.showDataValue)).selectStyle(field.defaultValue, field.index) .onSelect((index: number, text?: string) -> { field.index = index; field.defaultValue = text ?? field.defaultValue }); } }) }.itemRowStyle(); })

Row() { Button(app.string.cancel).btnStyle(gray).onClick(() -> { cancel() }); Button(app.string.confirm).btnStyle(successGreen).onClick(() -> { confirm(); controller?.close(); }); }.itemRowStyle()

输入框获得焦点变小的原因是在textInputStyle拓展方法中,它的样式被定义为TextInputStyle.Inline,改成TextInputStyle.Default就可以了。

原因是Inline是内联样式,文本选中底板高度与输入框高度相同,导致输入框获得焦点时随着输入框大小变化。

具体可以见:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-textinput-V5#textinputstyle9 枚举说明,

姓名

张三

联系方式

邮箱: zhangsan@example.com
电话: 123-456-7890

教育背景

本科
清华大学 - 计算机科学与技术专业

工作经验

  • 公司A
    软件工程师
  • 公司B
    高级软件工程师

项目经验

  • 项目1
    描述: 开发了一个高效的算法来提高数据处理速度。
  • 项目2
    描述: 设计并实现了系统架构,提升了系统的稳定性和可扩展性。

技能

  • 熟练掌握Java、Python编程语言
  • 熟悉Spring Boot框架
  • 熟悉MySQL数据库

针对“TextInput弹出输入法后,HarmonyOS 鸿蒙Next变小”的问题,这通常是由于界面布局在输入法弹出时未能正确调整以适应屏幕空间变化所致。以下是一些可能的原因及解决方案概述,不涉及Java或C语言内容:

  1. 布局问题:检查TextInput所在的布局是否使用了正确的布局参数,如layout_constraintBottom_toBottomOf等,确保在输入法弹出时,布局能够自动调整,避免遮挡或缩小。

  2. 窗口软输入模式:在应用的Activity或页面设置中,检查是否设置了正确的窗口软输入模式。例如,可以通过设置windowSoftInputMode属性为adjustResizeadjustPan来调整界面行为。但请注意,在HarmonyOS中,具体实现可能有所不同,需参考HarmonyOS官方文档进行调整。

  3. 焦点管理:确保TextInput在获得焦点时,能够正确触发布局调整。有时焦点变化可能导致布局重绘问题。

  4. 输入法框架兼容性:检查是否使用的输入法框架与HarmonyOS版本兼容,有时第三方输入法可能导致界面显示异常。

如果上述方法未能解决问题,可能是由于HarmonyOS特定的系统行为或bug导致。此时,建议直接联系HarmonyOS官方客服获取更专业的支持。如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部