android - 使用 onClick 时禁用 onTouch

标签 android accessibility text-to-speech

我正在为视障人士创建一个 Android 应用程序并使用按钮菜单。

当用户在屏幕上滑动手指时,应用程序会读取按钮的标题。这是使用 onTouch 事件完成的。当用户单击按钮时,会发生一个 Action (更改 Activity 或任何其他 Action ),并伴随语音反馈。这是使用 onClick 事件完成的。

问题是,当单击一个按钮时,两个事件都会触发(onTouch 和 onClick)并且 TTS 开始读取 onTouch 消息,半秒后停止并开始在 onClick 事件中声明的新消息。如何在调用 onClick 时禁用 onTouch 的触发。我理解这个问题,因为 onTouch 总是先于 onClick,但我不知道解决方案。

最佳答案

避免点击事件应用点击事件。

首先创建手势类。

class MyGestureDetector extends SimpleOnGestureListener 
{
    @Override
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)
    {
        return false;
    }
    @Override
    public boolean onDoubleTap(MotionEvent e) 
    {
        return true;
    }
    @Override
    public boolean onSingleTapUp(MotionEvent e) 
    {
        return true;
    }
}

然后创建一个GestureDetector gestureDetector;对象和

gestureDetector=new GestureDetector(myContext, new MyGestureDetector());

然后注册触摸事件。

view.setOnTouchListener(this);

像这样覆盖 onTouch 方法。

@Override
    public boolean onTouch(View view, MotionEvent event) 
    {
        Button b=(Button) view;
        gestureDetector.onTouchEvent(event);
        return true;
    }

在这里做一些关于单击和双击的任务。

关于android - 使用 onClick 时禁用 onTouch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14030779/

相关文章:

java - 如何通过 Intent 访问通知辅助功能页面?

python - 如何使用 python 传递字符串 + web url 并接收响应

android - 如何以编程方式设置 LinearLayout 的重力和布局重力

android - 仅在前台访问设备位置的权限

android - 相机 Intent 在 android 上保持打开状态

安卓 2.1 : How to zoom in/out and scroll on a GridView

html - 处理屏幕阅读器的屏蔽数字

macos - 无法在 AppleScript 中设置可设置的辅助功能属性

objective-c - iOS7 和 iOS 9 中的 AVSpeechSynthesizer 发音率不同

java - Android TTS如何在textview中显示说话的单词