Как отключить касание двумя пальцами на макете в Android - PullRequest
0 голосов
/ 28 мая 2018

Я попробовал ниже отключить касание двумя пальцами, вставив фрагмент моего макета, но не сработало android:splitMotionEvents="false" Также я попробовал ниже в манифесте: <uses-feature android:name="android.hardware.touchscreen.multitouch" android:required="false" /> Без помощи.

Если кто-нибудь знает, как угодитьдай мне знать.Спасибо

Ответы [ 3 ]

0 голосов
/ 28 мая 2018

Используйте код ниже, чтобы проверить мультитач во время выполнения и отключить его:

    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;
        }
    });
0 голосов
/ 28 мая 2018
gestureOverlayView.setOnTouchListener(new View.OnTouchListnener(){
    @Override
    public boolean onTouch(View v, MotionEvent e){
       // True means the event is ignored by the overlayed views 
       return e.getPointerCount() > 1 ? true : false;
    }
}

Вы можете поместить GestureOverlayView на весь экран и разрешить только первое касание.

0 голосов
/ 28 мая 2018

Вы можете сослаться на этот ответ уже там, в Stackoverflow

Отключить касание нескольких пальцев в моем приложении

...