translateRectIntoBounds function
Returns a translated Rect that fit layout
size
Implementation
Rect translateRectIntoBounds(Size layout, Rect rect) {
final double translateX = (rect.left < 0 ? rect.left.abs() : 0) +
(rect.right > layout.width ? layout.width - rect.right : 0);
final double translateY = (rect.top < 0 ? rect.top.abs() : 0) +
(rect.bottom > layout.height ? layout.height - rect.bottom : 0);
if (translateX != 0 || translateY != 0) {
return rect.translate(translateX, translateY);
}
return rect;
}