我有几个带有 onFocusChangeListeners 的 EditText
// When the field gains or loses focus
txtMinimumValue.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View view, boolean hasFocus) {
editFocusChange(view, hasFocus);
}
});
我在 Lollipop 之前的设备上没有遇到任何问题,但是任何 Nexus 5 和 onFocusChange 都会触发大约 7 次。
我发现了这个:Custom ListAdapter consisting of EditText lose focus called twice
然后我发现这个看起来相关的 Android 开源问题:https://code.google.com/p/android/issues/detail?id=80180 一位项目成员说,“框架版本也这样做。为将来的版本修复。”想知道 appcompat-v7:21.0.3 何时发布,我可以测试这是否解决了我的问题?
有人遇到同样的问题吗?
最佳答案
我有许多筛选器屏幕,其中我可能在顶部有多个 View 和编辑框,然后是 ListView
中的值列表。我一直在动态构建数组值的底部 ListView ,然后以编程方式构建 View 的顶部并将此顶部部分添加为标题 View 。这是为了让整个屏幕一起滚动,因为你不应该将 ListView
添加到 ScrollView
。
顶部部分的任何 EditText
View 都可能有 onFocusChange
方法来调整手动输入的过滤器值。在 Lollipop 上,一定有一个错误,这些以编程方式构建的 View 添加为 ListView
header 不起作用,因为 onFocusChange
方法重复触发。我必须将顶部构建为 xml,以便 onFocusChange
方法正确触发。
关于Android( Lollipop )EditText onFocus 多次触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27370105/