Android OnLongClickListener奇怪/不可靠的行为
作者:互联网
我目前正在与Android Api Lvl 8上的OnLongClickListener作战.
拿这个代码:
this.webView.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
System.out.println("long click");
return true;
}
});
它完美地运作.我可以按下WebView上的任意位置,每次都触发事件触发器.
现在来看看这个:
this.webView.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
final EditText editText = getUrlTextField();
switch (editText.getVisibility()) {
case View.VISIBLE:
editText.setVisibility(View.GONE);
return true;
case View.GONE:
editText.setVisibility(View.VISIBLE);
return true;
default:
return false;
}
}
});
假设URL EditText组件当前可见,它将从显示中消失,并在触发另一个长按事件时再次显示.
但是如果你运行它,当一个人在WebView上的任何一个位置上执行长按时,该事件只运行一次(!).为了使事情变得复杂,当在网站上的链接上执行时,长按会再次起作用…
任何人都可以解释它是否是sdk中的错误和/或我是否认为OnLongClickListener是如何工作的? :/
编辑:
我现在已经在Nexus One上运行了几个不同的场景,并得出以下结论:在运行时或多或少地更改布局会杀死OnLongClickListener ……我还没有找到让它可靠地工作的方法……
我真的很感激,如果有人能给我一个提示……我在我的智慧结束:(
解决方法:
个人而言,我最终在每次重播后重新设置了听众.
标签:behavior,android,listener,click,long-click 来源: https://codeday.me/bug/20191009/1877279.html