HarmonyOS鸿蒙Next中Scroll里有TextInput滑动时会触发弹出键盘,如何处理?
HarmonyOS鸿蒙Next中Scroll里有TextInput滑动时会触发弹出键盘,如何处理? Scroll 里有 TextInput时 当滑动时如果是在输入框上面,再滑动后会自动触发键盘弹出,如何处理?
试试以下思路(未实测):
TextInput可指定.focusable(this.enabled),然后对Scroll监听.onScrollStart()滑动开始时禁用this.enable,onScrollStop()滑动停止时打开this.enable 可阻止滑动期间输入框焦点事件。
主要考虑的是焦点状态:滑动前焦点在哪个组件,滑动时手指是否在输入框范围内导致滑动后焦点转给输入框。不确定你的场景细节,你可灵活处理。
更多关于HarmonyOS鸿蒙Next中Scroll里有TextInput滑动时会触发弹出键盘,如何处理?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
这个思路可以!先禁再放,
要官方去开工单会直接些。
另外真机上测试有输入框的Scroll上下滑动没有弹出软键盘,只有点在输入框上才会弹出,你具体怎么操作产生的?测试环境API 9。
有没有官方的来回答一下,上面这位一个解决方案,但是在android默认就不存在此问题,这应该是底层自动处理好的
在HarmonyOS鸿蒙Next中,当Scroll组件内包含TextInput组件时,滑动Scroll可能会触发TextInput的焦点事件,导致键盘弹出。要解决这个问题,可以通过以下方式处理:
-
使用
onScrollBeginDrag
和onScrollEndDrag
事件:在Scroll组件的onScrollBeginDrag
事件中,暂时禁用TextInput的焦点获取;在onScrollEndDrag
事件中,恢复TextInput的焦点获取能力。 -
控制TextInput的焦点:通过编程方式控制TextInput的焦点状态。在Scroll滑动时,调用
TextInput.blur()
方法取消焦点,滑动结束后再根据需要恢复焦点。 -
使用
KeyboardAvoidingView
:虽然鸿蒙原生不支持KeyboardAvoidingView
,但可以通过自定义组件实现类似功能,确保在Scroll滑动时键盘不会弹出。 -
调整布局:将TextInput放置在Scroll组件之外,或者使用其他布局方式避免Scroll滑动时触发TextInput的焦点事件。
通过这些方法,可以有效避免在Scroll滑动时触发TextInput的键盘弹出问题。