【问题标题】:Android onTouch() makes sound like double tapAndroid onTouch() 听起来像双击
【发布时间】:2014-11-27 18:36:44
【问题描述】:

我已经为我的布局实现了onTouch 以用作按钮。
除了有时在触摸按钮时会发出 2 次咔嗒声之外,这一切都很好用。
我试图调试它,但我无法理解问题所在。

这里是onTouch 代码:

button.setOnTouchListener(new OnTouchListener() 
{
    @Override
    public boolean onTouch(View v, MotionEvent event)
    {
        Log.d(TAG, "onTouch "+event.getAction());
        switch (event.getAction())
        {
            case MotionEvent.ACTION_HOVER_ENTER:
                v.setBackgroundResource(R.color.main_menu_buttons_bg_pressed);
                break;
            case MotionEvent.ACTION_HOVER_EXIT:
                v.setBackgroundResource(R.color.background_color);
                break;
            case MotionEvent.ACTION_DOWN:
                v.setBackgroundResource(R.color.main_menu_buttons_bg_pressed);
                break;
            case MotionEvent.ACTION_UP:
                Log.d(TAG, "on click");
                v.performClick();
                v.setBackgroundResource(R.color.background_color);
                break;
            default:
                // empty    
        }
        return false;
    }
});

如您所见,我添加了日志消息,通常会打印:

onTouch 0
onTouch 2
onTouch 2
onTouch 2
onTouch 2
onTouch 1
on click

所以应该没问题,但是会听到两次咔嗒声(有时,无法确定确切的时间)

【问题讨论】:

    标签: android onclick onclicklistener touch-event ontouch


    【解决方案1】:

    这是 v.performClick(); 的预期行为 du,当视图也有 OnClikListener 时:来自 GrepCode

    2480    public boolean More ...performClick() {
    2481        sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_CLICKED);
    2482
    2483        if (mOnClickListener != null) {
    2484            playSoundEffect(SoundEffectConstants.CLICK);
    2485            mOnClickListener.onClick(this);
    2486            return true;
    2487        }
    2488
    2489        return false;
    2490    }
    

    【讨论】:

    • 那我该如何避免呢?
    • 在按钮的实例上尝试button.setSoundEffectsEnabled(false);
    • 谢谢两位。我已禁用音效.. 我不知道如何避免它
    • 也可以从 XML 中完成:android:soundEffectsEnabled="false"
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-04
    • 1970-01-01
    相关资源
    最近更新 更多