rh function

double rh({
  1. num? mobile,
  2. num? tablet,
  3. num? desktop,
  4. num? ios,
  5. num? android,
  6. num? web,
})

Alto Responsive con variaciones por plataforma: Calcula el alto como porcentaje de pantalla con valores específicos por dispositivo.

Ejemplos:

Container(
  height: rh(mobile: 30, tablet: 25, desktop: 20),
  child: ...,
)

Implementation

double rh({
  num? mobile,
  num? tablet,
  num? desktop,
  num? ios,
  num? android,
  num? web,
}) {
  final screenInfo = ScreenInfoManager().info;
  final values = <DeviceType, num>{};

  if (mobile != null) values[DeviceType.mobile] = mobile;
  if (tablet != null) values[DeviceType.tablet] = tablet;
  if (desktop != null) values[DeviceType.desktop] = desktop;
  if (ios != null) values[DeviceType.ios] = ios;
  if (android != null) values[DeviceType.android] = android;
  if (web != null) values[DeviceType.web] = web;

  if (values.isEmpty) {
    throw FlutterError('rh() requiere al menos un valor de plataforma');
  }

  final normalizedValue = _getValueForDevice(screenInfo, values);
  return screenInfo.height * normalizedValue;
}