Use onLayout instead of onSizeChanged to ensure we align content