标签: touch-event

在Android 4.0导航栏劫持第一次触摸事件

在没有硬件导航键的Android 4.0设备上,Android会渲染导航栏.

如果您愿意,可以隐藏它setSystemUiVisibility().

如果这样做,让我们说如果你想获得尽可能多的屏幕进行播放,当你第一次触摸屏幕时(是的,在View你实现的时候View.onTouchEvent()),第一次触摸将被Android劫持,你的API将不会被调用.只有一个导航栏可见,它才会被调用.

现在,通过听取以下内容可以避免这种情况:

http://developer.android.com/reference/android/view/View.OnSystemUiVisibilityChangeListener.html

当导航栏可见时,只需执行首次触摸即可执行的操作.

有没有其他方法可以做同样的事情,那就是Android 4.0会在导航栏完成之后将触摸事件传播到我的应用程序?

android touch-event android-4.0-ice-cream-sandwich

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

在Gingerbread中实现拖放

我需要知道如何在Android中为Gingerbread版本实现Drag&Drop.据我所知,Gingerbread默认不支持.

我编码的内容:一个ViewGroup用来保持动态添加的孩子的班级,每个孩子应该在长时间点击之后能够通过手指点击/移动.为了解决这个问题,我已经OnLongClickListener附加了每个View孩子,我ViewGroup已经实现了onTouch()获取向下/向上/移动事件的方法onLongClick()以及响应每个孩子长按的方法.

现在我的问题如下:我长时间点击一个孩子,我可以移动它并可以通过ACTION_UP事件结束动作.但是,我不能再次点击这个孩子了 - 有没有办法可以处理这个问题?

我想,我并不需要一个真正的d&d库/函数,因为我只会在这个点一些图标ViewGroup-每个孩子被添加到ViewGroup通过代码,所以我没有一个真正的DropTarget我想.

android drag-and-drop touch-event onlongclicklistener viewgroup

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

使用ViewPager和PassByValue刷新页面时,onTouchEvent正在执行

在我的项目中使用onTouchEvent来检测屏幕上的触摸并相应地执行操作,并使用viewPager进行滑动操作.滑动问题是触摸操作正在执行.所以从这里找到解决方案解决了它.但我的新问题是,一旦TouchEvent.Action_up被执行,触摸就会被禁用.代码如下:

parent.setOnTouchListener(new OnTouchListener() {

    public boolean onTouch(View v, MotionEvent event) {

        switch(event.getAction())
        {
         case MotionEvent.ACTION_MOVE: 
                awesomePager.requestDisallowInterceptTouchEvent(true);
                break;
        case MotionEvent.ACTION_UP:
            awesomePager.requestDisallowInterceptTouchEvent(true);
             if(flag)
             {
               upperdock.setClickable(false);
                upperdock.bringToFront();
                tocparent.bringToFront();
                tocbottom.bringToFront();
                upperdock.setVisibility(RelativeLayout.VISIBLE);
                tocparent.setVisibility(LinearLayout.VISIBLE);
                tocbottom.setVisibility(LinearLayout.VISIBLE);
                flag=false;
             }
             else
             {

                parent.bringToFront();
                upperdock.setVisibility(RelativeLayout.INVISIBLE);
                tocparent.setVisibility(LinearLayout.INVISIBLE);
                tocbottom.setVisibility(LinearLayout.INVISIBLE);
                flag=true;
             }
             break;

        case MotionEvent.ACTION_CANCEL:
            awesomePager.requestDisallowInterceptTouchEvent(false);
             break;
        default:
            break;
        }

        return false;
    }
});
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,如果我返回false,则Action_up没有被执行..如果我返回true,则Action_cancel没有被执行..这是通过值传递的问题.

android pass-by-value touch-event android-viewpager

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

onTouch,onLong在android中一起点击

我正在动态地将图像视图添加到父版面.我正在onTouch添加图像执行放大/缩小操作.我想删除它上面的onLongPress的添加视图.

img.setOnLongClickListener(longClickAction);
img.setOnTouchListener(touchAction); 
Run Code Online (Sandbox Code Playgroud)

onLongPress:

OnLongClickListener longClickAction = new OnLongClickListener() {

    @Override
    public boolean onLongClick(View v) {

        parentLayout.removeView((ImageView)v);
        return false;
    }
};
Run Code Online (Sandbox Code Playgroud)

onTouch:

OnTouchListener touchAction = new OnTouchListener() {

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        ImageView i = (ImageView)v;

        //perfrom zoom operation on touch of imageview
        zoom(i, event);
        return true; 

    }
};
Run Code Online (Sandbox Code Playgroud)

只有Touch事件正在运行.为什么?我怎么能同时拥有?我哪里出错了?我该怎么做才能删除添加的视图?请帮我.提前致谢.

android event-handling touch-event onlongclicklistener

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

Android中的ImageView拖动限制

我在布局中有一个ImageView,并在ImageView上设置OnTouchListener来拖动ImageView.它工作得很好.我的问题是如何防止将ImageView移出布局范围?

这是我的代码:

活动类:

public class RepositionTestActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.reposition_test_layout);
        ImageView imageView = (ImageView)findViewById(R.id.android);
        imageView.setOnTouchListener(new Touch());
    }
}
Run Code Online (Sandbox Code Playgroud)

触摸类:

public class Touch implements OnTouchListener {

    private static final int NONE = 0;
    private static final int DRAG = 1;
    private static final int ZOOM = 2;

    private static final float MIN_ZOOM = 1f;
    private static final float MAX_ZOOM = 5f;

    private Matrix matrix = new Matrix();
    private Matrix savedMatrix = new Matrix();

    private …
Run Code Online (Sandbox Code Playgroud)

java android ontouchlistener touch-event

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

Javascript触摸事件:区分手指与Apple Pencil

在Mobile Safari中,有没有办法区分触摸事件是由手指还是Apple Pencil生成的?

javascript mobile-safari touch-event

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

如果已经滚动(在 iPhone 上),则不会在可滚动 div 上触发 touchstart 事件

我在 iPhone 6 设备上滚动时遇到了这个问题(在 Safari 和 Chrome 上测试):

给定一个可滚动的 div,如果我在 div 已经处于惯性滚动运动时触摸它,滚动运动会按预期停止,但touchstart事件根本不会触发。

当小米Android装置(在Chrome测试)测试的滚动停止touchstart事件被触发。

为什么touchstart没有触发?。这是 iPhone 上的标准行为吗?

我已经设置了一个小提琴来测试这种行为:

https://fiddle.jshell.net/galoxia/L63wj9or/

只需做出手势以“激活”蓝色框上的惯性滚动,然后再次触摸以停止它。在 Android 上,您将touchstart在黄色框中看到。在 iPhone 上你不会。

scroll mobile-safari touch-event touchstart web

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

颤动悬停式触摸处理 - 无需抬起手指即可检测来自不同小部件的触摸

假设我Container在屏幕上有 3秒通过改变颜色来对触摸做出反应。当用户的手指在它们上面时,它们应该改变颜色,当触摸末端时,它们应该恢复正常。我想要的是这些容器在用户手指/指针指向它们时做出反应,即使触摸是在容器外部的屏幕上的随机区域开始的。所以基本上我正在寻找的东西就像 css 悬停。

如果我GestureDetector单独包装每个容器,它们将不会对在它们之外开始的触摸事件做出反应。在另一个问题上(不幸的是,我现在没有链接)建议将所有容器用一个包装起来,GestureDetectorGlobalKey为每个容器分配一个以区分它们。

这是检测触摸手势的

class MyBoard extends StatefulWidget {
  static final keys = List<GlobalKey>.generate(3, (ndx) => GlobalKey());

  ...
}

class _MyBoardState extends State<MyBoard> {
  ...

  /// I control the number of buttons by the number of keys,
  /// since all the buttons should have a key
  List<Widget> makeButtons() {
    return MyBoard.keys.map((key) {
      // preapre some funcitonality here
      var someFunctionality;
      return MyButton(key, someFunctionality);
    }).toList();
  }

  @override
  Widget …
Run Code Online (Sandbox Code Playgroud)

mobile hover touch-event flutter

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

Flutter,拦截嵌套小部件中的触摸事件(PageView 案例中的 Map)

My FlutterMap( flutter_map),响应缩放/平移/点击手势 \n 是 a 的最后一个元素CustomScrollView,它本身就是 a 的页面之一PageView

\n\n

TL/DR:我希望地图始终能够获取事件。

\n\n

在此输入图像描述

\n\n

如图所示,左右触摸事件用于PageView滚动页面。向上-向下事件用于CustomScrollView滚动条子。所以地图通常不会收到任何事件,或者随机地,某些事件 \xe2\x9a\x94\xef\xb8\x8f赢得了竞技场战斗并让用户与地图交互。

\n\n
 \xe2\x9d\x99 \xe2\x98\x85 Opening new gesture arena.\n \xe2\x9d\x99 Adding: TapGestureRecognizer#df66a(debugOwner: GestureDetector, state: ready, button: 1)\n \xe2\x9d\x99 Adding: VerticalDragGestureRecognizer#2b952(start behavior: start)\n \xe2\x9d\x99 Adding: HorizontalDragGestureRecognizer#dbeae(start behavior: start)\n \xe2\x9d\x99 Closing with 3 members.\n \xe2\x9d\x99 Rejecting: TapGestureRecognizer#df66a(debugOwner: GestureDetector, state: possible, button: 1)\n \xe2\x9d\x99 Accepting: VerticalDragGestureRecognizer#2b952(start behavior: start)\n \xe2\x9d\x99 Self-declared winner: VerticalDragGestureRecognizer#2b952(start behavior: start)\n
Run Code Online (Sandbox Code Playgroud)\n\n

自称的获胜者几乎VerticalDrag总是 …

android gesture touch-event flutter

7
推荐指数
0
解决办法
1061
查看次数

实现“少”时,例如在移动设备上滚动时,仅触摸一次移动火

我正在尝试在 jQuery 终端的较少扩展中实现触摸滚动。它的工作方式类似于 less unix 命令。

我有这个代码:

self.touch_scroll(function(event) {
    // how much difference changed since last touch move
    var delta = event.current.clientY - event.previous.clientY;
    var ret;
    var interpreter = interpreters.top();
    if (is_function(interpreter.touchscroll)) {
        ret = interpreter.touchscroll(event, delta, self);
    } else if (is_function(settings.touchscroll)) {
        ret = settings.touchscroll(event, delta, self);
    }
    if (ret === true) {
        return;
    }
    return false;
});
// make_callback_plugin is helper that use $.Callbacks and make sure that there is only
// one handler on the element
$.fn.touch_scroll …
Run Code Online (Sandbox Code Playgroud)

javascript jquery android touch-event jquery-terminal

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