TourGuide
TourGuide copied to clipboard
getYForTooTip does not handle CENTER_VERTICAL gravity
I think the getYForTooTip method should look something like this:
private int getYForTooTip(int gravity, int toolTipMeasuredHeight, int targetViewY, float adjustment){
int y;
if ((gravity & Gravity.TOP) == Gravity.TOP) {
if (((gravity & Gravity.LEFT) == Gravity.LEFT) || ((gravity & Gravity.RIGHT) == Gravity.RIGHT)) {
y = targetViewY - toolTipMeasuredHeight + (int)adjustment;
} else {
y = targetViewY - toolTipMeasuredHeight - (int)adjustment;
}
} else if ((gravity & Gravity.BOTTOM) == Gravity.BOTTOM) {
if (((gravity & Gravity.LEFT) == Gravity.LEFT) || ((gravity & Gravity.RIGHT) == Gravity.RIGHT)) {
y = targetViewY + mHighlightedView.getHeight() - (int) adjustment;
} else {
y = targetViewY + mHighlightedView.getHeight() + (int) adjustment;
}
} else { // this is center
if (((gravity & Gravity.LEFT) == Gravity.LEFT) || ((gravity & Gravity.RIGHT) == Gravity.RIGHT)) {
y = targetViewY + mHighlightedView.getHeight() / 2 - (int) adjustment;
} else {
y = targetViewY + mHighlightedView.getHeight() / 2 + (int) adjustment;
}
}
return y;
}
Hi @peterosterlund2
Your code actually looks good, that should fix Gravity.BOTTOM, can you make a pull request?
I will then test and merge it.