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
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
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;
}
I replaced my Viewpager with CardScrollView and it is pretty fast as well. Do try that out.