Алексей Asked:2023-12-27 20:46:00 +0800 CST2023-12-27 20:46:00 +0800 CST 2023-12-27 20:46:00 +0800 CST 禁用和启用手势 772 我的问题是:是否可以禁用手势,但仍仅保留触摸活动状态?换句话说,我怎么能忽略手势呢? java 1 个回答 Voted Best Answer Mixadyt 2023-12-27T20:51:48+08:002023-12-27T20:51:48+08:00 要在 Java 中忽略 Android 上的手势,您可以使用 GestureDetector,它会处理所有手势并提供用于检测、忽略或处理所需手势的工具。 以下示例展示了如何忽略所有屏幕手势: 爪哇 import android.app.Activity; import android.os.Bundle; import android.view.GestureDetector; import android.view.MotionEvent; import android.view.GestureDetector.OnGestureListener; import android.view.GestureDetector.SimpleOnGestureListener; import android.widget.Toast; public class MainActivity extends Activity { private GestureDetector gestureDetector; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Создаем объект GestureDetector gestureDetector = new GestureDetector(this, new MyGestureListener()); } @Override public boolean onTouchEvent(MotionEvent event) { // Передаем события касания в GestureDetector для обработки жестов gestureDetector.onTouchEvent(event); return super.onTouchEvent(event); } private class MyGestureListener extends SimpleOnGestureListener { @Override public boolean onDown(MotionEvent event) { // Вернуть true, чтобы игнорировать жесты return true; } // Дополнительные методы, которые можно переопределить @Override public void onLongPress(MotionEvent event) { // Обработка долгого нажатия Toast.makeText(MainActivity.this, "Долгое нажатие", Toast.LENGTH_SHORT).show(); } @Override public boolean onFling(MotionEvent event1, MotionEvent event2, float velocityX, float velocityY) { // Обработка свайпа Toast.makeText(MainActivity.this, "Свайп", Toast.LENGTH_SHORT).show(); return true; } // Можно добавить другие методы, такие как onSingleTapUp(), onDoubleTap() и т. д. } } 在此示例中,MainActivity 类扩展了 Activity 并重写了 onTouchEvent() 方法,以将触摸事件传递给 GestureDetector 进行处理。接下来,创建一个 MyGestureListener 类,该类继承自 SimpleOnGestureListener 并重写 onDown()、onLongPress() 和 onFling() 等手势处理方法。onDown() 方法返回 true 以忽略所有手势。 最终,所有屏幕上的手势都将被忽略,但您可以配置 MyGestureListener 并添加其他方法来处理所需的手势。
要在 Java 中忽略 Android 上的手势,您可以使用 GestureDetector,它会处理所有手势并提供用于检测、忽略或处理所需手势的工具。
以下示例展示了如何忽略所有屏幕手势:
爪哇
在此示例中,MainActivity 类扩展了 Activity 并重写了 onTouchEvent() 方法,以将触摸事件传递给 GestureDetector 进行处理。接下来,创建一个 MyGestureListener 类,该类继承自 SimpleOnGestureListener 并重写 onDown()、onLongPress() 和 onFling() 等手势处理方法。onDown() 方法返回 true 以忽略所有手势。
最终,所有屏幕上的手势都将被忽略,但您可以配置 MyGestureListener 并添加其他方法来处理所需的手势。