bmfe / eros

📱 一套 Vue 代码,两端原生应用 ,或许可以叫我 weex-native。
https://bmfe.github.io/eros-docs
MIT License
2.01k stars 287 forks source link

安卓input输入框被软键盘覆盖 #355

Open theladderofsuccess opened 5 years ago

theladderofsuccess commented 5 years ago

Your questions.

-登录注册界面,不会用到原生导航,然后在使用input的时候就出现了被软键盘覆盖的情况,如果使用原生导航可以做到使用输入框时软键盘将输入框顶上去,那么不使用原生导航时应该怎么才能做到将输入框顶上去?

Environment.

What do you think may be caused by the analysis of the problem.

Reappearance of the problem (It's best to have a screenshot).

theladderofsuccess commented 5 years ago

同样还有input的问题,一开始想自己写个搜索组件,还以为是自己的问题·,但不论是weex-UI还是BUI-weex中的搜索框组件都存在一个问题:第一次使用退格键对输入框进行清空操作的时候,输入框无法清空,永远会剩下最后一个字符串,因为删除到最后一个字符串的时候就无法触发 @input 事件了,不知道这个问题大佬们有没有办法解决?

heynchy commented 5 years ago

针对--输入框无法清空,永远会剩下最后一个字符串,删除到最后一个字符串的时候就无法触发 @input 事件了---这个问题,我在Android端进行了相关测试,确实存在该问题, 我个人在Android端的解决方案就是: 可以修改nexus/sdk 中AbstractEditComponent.java文件, 包名:"package com.taobao.weex.ui.component" 在该文件的addEvent()方法中修改: 这个是INPUT的响应事件,代码行数位置大约在--268行——309行之间 修改如下的加粗的那行代码----位置大约在293行 原来代码: if (mBeforeText != null && mBeforeText.equals(valString)) 修改为: if (!TextUtils.isEmpty(mBeforeText) && TextUtils.equals(mBeforeText,valString))

theladderofsuccess commented 5 years ago

@heynchy 感谢大佬提供的解决方案,input框退格清空问题确实解决了,行之有效!纯前端的我搞得脑壳皮清痛……再次感谢!

CGerAJ commented 5 years ago

针对--输入框无法清空,永远会剩下最后一个字符串,删除到最后一个字符串的时候就无法触发 @input 事件了---这个问题,我在Android端进行了相关测试,确实存在该问题, 我个人在Android端的解决方案就是: 可以修改nexus/sdk 中AbstractEditComponent.java文件, 包名:"package com.taobao.weex.ui.component" 在该文件的addEvent()方法中修改: 这个是INPUT的响应事件,代码行数位置大约在--268行——309行之间 修改如下的加粗的那行代码----位置大约在293行 原来代码: if (mBeforeText != null && mBeforeText.equals(valString)) 修改为: if (!TextUtils.isEmpty(mBeforeText) && TextUtils.equals(mBeforeText,valString)) @heynchy 这个地方能提供整个文件吗 我测试替换之后并不好使 好尴尬

heynchy commented 5 years ago

AbstractEditComponent.zip

@CGerAJ 这个是我本地的文件,你可以试试 修改的代码的功能并不是清空的作用,而是为了让 JS 端 input事件能够响应; 未修改之前,因为当输入框移除最后一个数据时,input 不在响应,所以会存留一个数据

CGerAJ commented 5 years ago

tks