【问题标题】:EditText.setError() popup placementEditText.setError() 弹出窗口位置
【发布时间】:2013-01-21 15:01:57
【问题描述】:

我正在使用 v16 API,但在显示屏幕键盘时弹出窗口的放置位置存在问题。

第一个问题是,如果EditText 位于屏幕底部,当我触摸该字段以将其打开以进行编辑时,弹出窗口会显示在控件下方,并立即覆盖为键盘出现。它不会重新定位到EditText 之上,直到按键触发我的验证代码再次触发新值。

第二个问题是,当我关闭键盘并且包含文本的ScrollView 从其自身定位的位置向下滚动以在键盘上方显示EditText 时,弹出窗口仍然位于屏幕的上半部分EditText 在哪里,直到我触摸屏幕上的其他东西(触发 ScrollView 进行重绘???)。

【问题讨论】:

    标签: android android-layout android-edittext scrollview


    【解决方案1】:

    不幸的是,弹出窗口有这样的各种问题:(

    在您的情况下,也许一个简单的解决方案是在键盘显示和关闭时强制使 UI 无效?不记得如果 EditText 无效,Popup 是否会重新定位,但值得尝试,因为替代方法可能是重新实现。

    在 github 上查看我的 android-formidable-validation 库,它重新实现了......虽然有它自己的问题 - 如果你走这条路,为什么不帮我做一些贡献;)

    【讨论】:

    • 你在github哪里?对“straya”进行用户搜索没有任何结果。
    • editText 或其父级的无效不会触发在正确位置重绘弹出窗口。
    • 抱歉,Dan,我以为你可以搜索项目名称(你可以有 ;P),这是链接:github.com/coreform/android-formidable-validation
    • 嗯,好的,失效失败了,但是再次设置 setError 文本呢?也许这会产生错误弹出窗口的重绘?
    • 我尝试在键盘显示时触发的事件中重置错误文本(然后是常规文本)。令人费解的是,两者都阻止了 ScrollView 滚动;将 EditText 完全留在键盘下方。
    猜你喜欢
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-06
    • 2012-12-29
    相关资源
    最近更新 更多