标签: gesturedetector

检测ListView上的手势有问题

我有一个包含ViewFlipper的Activity.ViewFlipper包含2个布局,这两个布局基本上只是ListView.

所以这里的想法是我有两个列表,从一个列表导航到另一个列表,我会使用水平滑动.

我有那个工作.但是,当滑动开始执行时,您的手指所在的列表项目,也会长按该项目.

这是我的相关代码:

public class MyActivity extends Activity implements OnItemClickListener, OnClickListener {

    private static final int SWIPE_MIN_DISTANCE = 120;
    private static final int SWIPE_MAX_OFF_PATH = 250;
    private static final int SWIPE_THRESHOLD_VELOCITY = 200;

    private GestureDetector mGestureDetector;
    View.OnTouchListener mGestureListener;

    class MyGestureDetector extends SimpleOnGestureListener {
        @Override
        public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
            try {
                if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH)
                    return false;
                // right to left swipe
                if(e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) …
Run Code Online (Sandbox Code Playgroud)

android listview gesture viewflipper gesturedetector

9
推荐指数
1
解决办法
8453
查看次数

如何检测屏幕上的点按?

更具体的我在哪里附加,OnGestureListener以便
我可以onSingleTapUp在屏幕上的任何地方检测到,
即使ImageView占据屏幕的一半.

现在我在Activity上有一个带有ImageView的Listener.
但是当我在ImageView外部单击时,Listener才会触发.

我阅读并尝试理解这一点,但无法做到正确.

此代码位于Activity中.

 public boolean onSingleTapUp(MotionEvent e) {
    //addtext.setText("-" + "SINGLE TAP UP" + "-");
    //Log.d(TAG, "- + SINGLE TAP UP + - ***********************************************************************");  
    int btnsize = buttonSave.getHeight();
    int viewWidth = display.getWidth();
    int viewHeight = display.getHeight();

    // RIGHT SIDE SCREEN
    if(e.getX()> (viewWidth*0.7)){
        Log.d(TAG, "RIGHT SIDE");
        if(e.getY()> viewHeight*0.7){         
            Log.d(TAG, "right down on screen");
        }else if(e.getY()> (viewHeight*0.45)){ 
            Log.d(TAG, "right middle on screen   ");
        }
    }
    // LEFT SIDE SCREEN
    if(e.getX()< (viewWidth*0.3)){
        Log.d(TAG, …
Run Code Online (Sandbox Code Playgroud)

android gesturedetector

9
推荐指数
2
解决办法
1万
查看次数

如何使用onScroll和GestureDetector - Android跟随我的手指

我有一个RelativeLayout,中间有一个TextView.我已经使用SimpleOnGestureListener()来检测onFling,onDown和onScroll事件.

我希望TextView能够在屏幕上跟随我的手指(可以只是在x轴上),当我抬起手指时,它会从屏幕上移动或者回到中间(取决于我有多远)感动它).

android textview onscroll gesturedetector

9
推荐指数
1
解决办法
7319
查看次数

GestureDetector.onTouchEvent中的NullPointerException

我在onTouch中使用GestureDetector进行了一项活动.在我的布局中,我还有一个实现onClickListener的视图.在Android ICS上,我在处理TouchEvent时遇到NullPointerException.这个错误的原因是什么?我看过几篇帖子说onClick和onTouch不能很好地结合在一起,但是当看到这个错误时,没有真正的原因解释或问题的真正解决方案.

这是代码:

public class FlipCardActivity extends Activity implements
    View.OnClickListener, View.OnTouchListener {

    protected GestureDetector gestureDetector;

    protected class TouchSwipeListener extends GestureDetector.
        SimpleOnGestureListener {       
        @Override
        public boolean onDown(MotionEvent e) {
            return false;
        }

        @Override
        public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
            float velocityY) {
            // Calculate dx, gradient, velocity, etc
            // Check for and discard unacceptable swipes
            if (Math.abs(gradient) > SWIPE_MAX_GRADIENT || Math.abs(distance) < 
                SWIPE_MIN_DISTANCE || Math.abs(velocity) < SWIPE_MIN_VELOCITY)
                return false;

            // Determine whether it's a left or a right swipe …
Run Code Online (Sandbox Code Playgroud)

android gesturedetector

9
推荐指数
1
解决办法
3828
查看次数

在小部件后面传播点击

我有一个堆栈,里面有两个小部件。我正在尝试检测对堆栈底部小部件的点击,该小部件位于顶部小部件的后面。

我正在使用HitTestBehavior.translucent,但只有在GestureDetector没有任何孩子的情况下它才有效。

这是我的应用程序中所需内容的简化版本。我有一个堆栈,其中包含屏幕上的许多小卡片,并且在它们之上有一张画布。尽管有画布,我仍然需要能够点击卡片来更改其内容。我认为使用半透明行为可以解决我的问题,但事实并非如此。

编辑:另外,第一个GestureDetector总是在Positioned小部件中。

class TestPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: SizedBox(
          height: 800,
          width: 400,
          child: Stack(
            children: [
              /// 2. ... and trigger the onTap function of this widget
              GestureDetector(
                behavior: HitTestBehavior.opaque,
                onTap: () {
                  print('TAP BOTTOM');
                },
                child: Container(
                  height: 500,
                  width: 400,
                  color: Colors.deepOrange,
                ),
              ),
              /// 1. I'm Trying to clic here...
              GestureDetector(
                behavior: HitTestBehavior.translucent,
                onTap: null,
                child: Container( …
Run Code Online (Sandbox Code Playgroud)

canvas propagation gesturedetector dart flutter

8
推荐指数
1
解决办法
5035
查看次数

SimpleOnGestureListener永远不会进入onFling(...)方法

你好SimpleOnGestureListener不能在我的应用程序中工作这就是我实现它的方式.也许你可以发现什么是错的.事情是调试显示应用程序永远不会进入onFling(...)方法和gdt.onTouchEvent(事件); 总是返回false:/任何想法?谢谢

我的活动课

 public class SimpleActivity extends Activity{


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.simpleLayout);

    final ImageView imageView = (ImageView) findViewById(R.id.gggbbb);
     imageView.setOnTouchListener(new OnFlingGestureListener() {

        @Override
        public void onTopToBottom() {
           System.out.println("top");
        }

        @Override
        public void onRightToLeft() {
            System.out.println("right");
        }

        @Override
        public void onLeftToRight() {
            System.out.println("left");
        }

        @Override
        public void onBottomToTop() {
            System.out.println("bottom");
        }
     });



}


    }
Run Code Online (Sandbox Code Playgroud)

我的抽象听众

 package com.dmd.client.detailsMenus;

 import android.view.GestureDetector;
 import android.view.GestureDetector.SimpleOnGestureListener;
 import android.view.MotionEvent;
 import android.view.View;
 import android.view.View.OnTouchListener;

 public abstract class OnFlingGestureListener implements OnTouchListener {

  private final GestureDetector gdt …
Run Code Online (Sandbox Code Playgroud)

android gesturedetector android-activity

7
推荐指数
1
解决办法
5446
查看次数

如何将GestureDetector附加到ListPreference?

一个附接的挑战GestureDetectorListPreference是2倍:

  1. 获取仅在preferences.xml中定义的ListPreference句柄(即未在Java代码中实例化).
  2. ListPreference既不是View子类也不是Activity子类.

是否可以将GestureDetector附加到ListPreference

如果是这样,怎么会这样呢?我在哪里编写代码来实例化GestureDetector并实现监听器?

android listpreference gesturedetector

7
推荐指数
1
解决办法
463
查看次数

GestureDetector和GestureDetectorCompat

GestureDetector Class和GestureDetectorCompat类有什么区别?两者都做同样的事情(处理手势),但我应该使用哪一个?

java api android gestures gesturedetector

7
推荐指数
1
解决办法
2734
查看次数

Flutter:GestureDetector 在其中包含 ListView 时显然不会接收 Drag 事件

我错过了什么吗?文档说事件从最里面的孩子冒泡到祖先,但下面的代码不会打印“拖动”到控制台。不过,它确实打印了“点击”。将 NeverScrollablePhyiscs 应用于 ListView 确实有效,但我想在两个级别上监听事件。将 HitTestBehavior.translucent 应用于 GestureDetector 不会改变任何东西。

import "package:flutter/material.dart";

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
    Widget build(BuildContext context) {
      return MaterialApp(
        home: MyHomePage(),
      );
    }
}

class MyHomePage extends StatelessWidget {
  @override
    Widget build(BuildContext context) {
      return Scaffold(
        body: GestureDetector(
          onVerticalDragUpdate: (DragUpdateDetails details) {
            print("dragged");
          },
          onTap: () {
            print("tapped");
          },
          child: ListView.builder(
            itemBuilder: (context, index) {
              return Container(
                padding: EdgeInsets.all(20.0),
                child: Text(
                  "The GestureDetector above me does not react to drag events. Maybe …
Run Code Online (Sandbox Code Playgroud)

listview nested gesturedetector flutter

7
推荐指数
1
解决办法
3598
查看次数

如何使用 GestureDetect 点击 Flutter 中的 CustomPaint 路径?

我对 flutter 非常陌生,正在尝试找出如何在 CustomPaint 路径上检测到手势。我可以单击许多其他内容,但由于某种原因不能单击路径...我该如何让它工作?到目前为止我的代码如下。

import 'package:flutter/material.dart';

void main() => runApp(MbiraShapes());

class MbiraShapes extends StatefulWidget {
    @override
  _MbiraShapesState createState() => _MbiraShapesState();
}

class _MbiraShapesState extends State<MbiraShapes>{

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        title: 'Mbira Shapes',
        home: PathExample());
  }
}

class PathExample extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return CustomPaint(
      painter: KeyPathPainter(),
    );
  }
}

class KeyPathPainter extends CustomPainter {
  @override
  void paint(Canvas canvas, Size size) {
    Paint lineDrawer = Paint()
      ..color = Colors.blue
      ..strokeWidth = 8.0;

    Path …
Run Code Online (Sandbox Code Playgroud)

path custom-painting gesturedetector dart flutter

7
推荐指数
2
解决办法
9905
查看次数