0

My Glass got updated to XE16 and thereafter Viewpagers used in Glassware is not working. It is not possible to move to any of the pagers by swiping.If anybody has encountered this before,please do help.

Thanks

krthk123
  • 23
  • 6

2 Answers2

0

Heh. Yeah, the update removed certain standard things from happening (like gestures on the touchpad moving focus etc).

What you have to do is implement a gesturerecogniser/listener and implement the necessary fields, like so (don't forget to instantiate/implement/import etc etc etc in the activity)):

private GestureDetector createGestureDetector(Context context) {
    GestureDetector gestureDetector = new GestureDetector(context);
        //Create a base listener for generic gestures
        gestureDetector.setBaseListener( new GestureDetector.BaseListener() {
            @Override
            public boolean onGesture(Gesture gesture) {
                if (gesture == Gesture.TAP) {
                    // do something on tap
                    //do ?
                    return false;                       
                } else if (gesture == Gesture.TWO_TAP) {
                    // do something on two finger tap
                    return true;
                } else if (gesture == Gesture.LONG_PRESS) {
                    // do something on long press
                    if (!showingMenu)
                    {
                        openOptionsMenu();
                        return true;
                    }
                    else
                    {
                        return false;
                    }
                } else if (gesture == Gesture.SWIPE_RIGHT) {
                    // do something on right (forward) swipe
                    //next slide:
                    mPosition++;
                    if (mPosition >= cardArray.size())
                    {
                        mPosition = cardArray.size() -1;
                    }
                    mGallery.setSelection(mPosition);                       
                    return true;
                } else if (gesture == Gesture.SWIPE_LEFT) {
                    // do something on left (backwards) swipe
                    //previous slide:
                    mPosition--;
                    if (mPosition < 0)
                    {
                        mPosition = 0;
                    }
                    mGallery.setSelection(mPosition);                       
                    return true;
                }
                return false;
            }
        });
        gestureDetector.setFingerListener(new GestureDetector.FingerListener() {
            @Override
            public void onFingerCountChanged(int previousCount, int currentCount) {
              // do something on finger count changes
            }
        });
        /*gestureDetector.setScrollListener(new GestureDetector.ScrollListener() {
            @Override
            public boolean onScroll(float displacement, float delta, float velocity) {
                // do something on scrolling
                if (delta > 5.0f)
                {
                    //scroll forwards:
                    //
                }
                else if (delta < -5.0f)
                {
                    //scroll backwards:
                    //
                }
                return false;
            }
        });*/
        return gestureDetector;
}

/*
 * Send generic motion events to the gesture detector
 */
@Override
public boolean onGenericMotionEvent(MotionEvent event) {
    if (mGestureDetector != null) {
        return mGestureDetector.onMotionEvent(event);
    }
    return false;
}
MacD
  • 783
  • 7
  • 23
0

I replaced my Viewpager with CardScrollView and it is pretty fast as well. Do try that out.

krthk123
  • 23
  • 6