Estoy buscando una forma de crear un render para una etiqueta. Necesito mostrar alguna información (por ejemplo: el número de código de barras) Necesito que quepa en el espacio reservado de la etiqueta
Quiero mostrar la información con el tamaño de fuente máximo posible en una sola línea. Y necesito cambiar automáticamente el tamaño del texto si es necesario.
Leí algunos blogs sobre el cambio de tamaño automático del texto en Xamarin, pero todas las soluciones parecen complicadas y desactualizadas.
Quisiera preguntar si alguien tiene algun codigo o alguna idea actualizada para solucionar esta funcionalidad, gracias
Podría intentar usar textview.SetAutoSizeTextTypeWithDefaults(AutoSizeTextType.Uniform) y uilabel.AdjustsFontSizeToFitWidth = true en Android e iOS.
Para Android
en su renderizador personalizado:
class AutoFitLabel:LabelRenderer { public AutoFitLabel(Context context) : base(context) { } protected override void OnElementChanged(ElementChangedEventArgs<Label> e) { base.OnElementChanged(e); Control.SetAutoSizeTextTypeWithDefaults(AutoSizeTextType.Uniform); } }Para iOS:
public class AutoFitLabel: LabelRenderer { protected override void OnElementChanged ( ElementChangedEventArgs<Label> e) { base.OnElementChanged (e); var label = Control as UILabel; if (label != null) { label.AdjustsFontSizeToFitWidth = true; } } }y llame a sus formularios xaml:
<Label HeightRequest="80" HorizontalOptions="FillAndExpand" MaxLines="1" Text="This Label hasset Height to 80"> </Label>