其他分享
首页 > 其他分享> > Android OnLongClickListener奇怪/不可靠的行为

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