Skip to content

getYForTooTip does not handle CENTER_VERTICAL gravity #59

Open
@peterosterlund2

Description

@peterosterlund2

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;
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions