Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android中禁用双指触摸布局_Android_Android Layout_Multi Touch - Fatal编程技术网

如何在android中禁用双指触摸布局

如何在android中禁用双指触摸布局,android,android-layout,multi-touch,Android,Android Layout,Multi Touch,我在下面尝试通过放入片段布局来禁用双指触摸,但没有成功android:splitMotionEvents=“false” 我还在清单中尝试了以下操作:无帮助 如果有人知道怎么做,请告诉我。谢谢您可以参考Stackoverflow上已有的答案 您可以参考Stackoverflow上已有的答案 使用以下代码检查运行时多点触摸并禁用它: private SparseArray<PointF> mActivePointers= new SparseArray<PointF>

我在下面尝试通过放入片段布局来禁用双指触摸,但没有成功
android:splitMotionEvents=“false”
我还在清单中尝试了以下操作:
无帮助


如果有人知道怎么做,请告诉我。谢谢

您可以参考Stackoverflow上已有的答案


您可以参考Stackoverflow上已有的答案


使用以下代码检查运行时多点触摸并禁用它:

    private SparseArray<PointF> mActivePointers= new SparseArray<PointF>();

 yourlayoutname.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {

            int pointerIndex = event.getActionIndex();

            // get pointer ID
            int pointerId = event.getPointerId(pointerIndex);

            // get masked (not specific to a pointer) action
            int maskedAction = event.getActionMasked();

            switch (maskedAction) {

                case MotionEvent.ACTION_DOWN:
                case MotionEvent.ACTION_POINTER_DOWN: {
                    // We have a new pointer. Lets add it to the list of pointers

                    PointF f = new PointF();
                    f.x = event.getX(pointerIndex);
                    f.y = event.getY(pointerIndex);
                    mActivePointers.put(pointerId, f);

                    if (mActivePointers.size() >= 2) {
                        //DO NOTHING
                    }

                    break;
                }
                case MotionEvent.ACTION_UP:
                case MotionEvent.ACTION_POINTER_UP:
                case MotionEvent.ACTION_CANCEL: {
                    mActivePointers.remove(pointerId);

                    break;
                }
            }
            return true;
        }
    });
private SparseArray mActivePointers=new SparseArray();
yourlayoutname.setOnTouchListener(新视图.OnTouchListener(){
@凌驾
公共布尔onTouch(视图v,运动事件){
int pointerIndex=event.getActionIndex();
//获取指针ID
int pointerId=event.getPointerId(pointerIndex);
//获取掩码(不特定于指针)操作
int maskedAction=event.getActionMasked();
开关(掩蔽){
case MotionEvent.ACTION\u DOWN:
case MotionEvent.ACTION\u指针\u向下:{
//我们有一个新指针。让我们把它添加到指针列表中
PointF=新的PointF();
f、 x=event.getX(pointerIndex);
f、 y=event.getY(pointerIndex);
mActivePointers.put(pointerId,f);
如果(mActivePointers.size()>=2){
//无所事事
}
打破
}
case MotionEvent.ACTION\u UP:
case MotionEvent.ACTION\u指针\u向上:
case MotionEvent.ACTION\u取消:{
mActivePointers.remove(指针ID);
打破
}
}
返回true;
}
});

使用以下代码检查运行时多点触摸并禁用它:

    private SparseArray<PointF> mActivePointers= new SparseArray<PointF>();

 yourlayoutname.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {

            int pointerIndex = event.getActionIndex();

            // get pointer ID
            int pointerId = event.getPointerId(pointerIndex);

            // get masked (not specific to a pointer) action
            int maskedAction = event.getActionMasked();

            switch (maskedAction) {

                case MotionEvent.ACTION_DOWN:
                case MotionEvent.ACTION_POINTER_DOWN: {
                    // We have a new pointer. Lets add it to the list of pointers

                    PointF f = new PointF();
                    f.x = event.getX(pointerIndex);
                    f.y = event.getY(pointerIndex);
                    mActivePointers.put(pointerId, f);

                    if (mActivePointers.size() >= 2) {
                        //DO NOTHING
                    }

                    break;
                }
                case MotionEvent.ACTION_UP:
                case MotionEvent.ACTION_POINTER_UP:
                case MotionEvent.ACTION_CANCEL: {
                    mActivePointers.remove(pointerId);

                    break;
                }
            }
            return true;
        }
    });
private SparseArray mActivePointers=new SparseArray();
yourlayoutname.setOnTouchListener(新视图.OnTouchListener(){
@凌驾
公共布尔onTouch(视图v,运动事件){
int pointerIndex=event.getActionIndex();
//获取指针ID
int pointerId=event.getPointerId(pointerIndex);
//获取掩码(不特定于指针)操作
int maskedAction=event.getActionMasked();
开关(掩蔽){
case MotionEvent.ACTION\u DOWN:
case MotionEvent.ACTION\u指针\u向下:{
//我们有一个新指针。让我们把它添加到指针列表中
PointF=新的PointF();
f、 x=event.getX(pointerIndex);
f、 y=event.getY(pointerIndex);
mActivePointers.put(pointerId,f);
如果(mActivePointers.size()>=2){
//无所事事
}
打破
}
case MotionEvent.ACTION\u UP:
case MotionEvent.ACTION\u指针\u向上:
case MotionEvent.ACTION\u取消:{
mActivePointers.remove(指针ID);
打破
}
}
返回true;
}
});
您可以在整个屏幕上显示一个手势,并且只允许第一次触摸事件

您可以在整个屏幕上显示一个手势,并且只允许第一次触摸事件