the answer is to manage positioning by override onLayout of the containing 
ViewGroup, rather than the View itself.

E.g.,

@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
    int count = getChildCount();
    for (int i = 0; i < count; i++) {
        View child = getChildAt(i);
        if (child.getVisibility() != GONE) {
            MyCustomLayout.LayoutParams lp = (MyCustomLayout.LayoutParams) 
child.getLayoutParams();
            int w = child.getMeasuredWidth();
            int h = child.getMeasuredHeight();
            int x = lp.left - (int) (w / 2f);
            int y = lp.top - h;
            child.layout(x, y, x + w, y + h);
        }
    }
}

(note that the above example specifically is untested, but i've tested the 
basic premise and it works)

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to