我正在寻找一种为标签创建渲染的方法。我需要显示一些信息(例如:条形码编号)我需要它以适合标签保留空间
我想显示最大字体大小的信息可能适合一行。如果需要,我需要自动调整文本大小
我在 Xamarin 上阅读了一些关于自动调整文本大小的博客,但所有解决方案看起来都很复杂且过时。
我想问一下是否有人有一些代码或一些更新的想法来解决这个功能,谢谢
答案 0 :(得分:0)
您可以尝试在 Android 和 ios 上使用 textview.SetAutoSizeTextTypeWithDefaults(AutoSizeTextType.Uniform)
和 uilabel.AdjustsFontSizeToFitWidth = true
。
安卓版
在您的自定义渲染器中:
class AutoFitLabel:LabelRenderer
{
public AutoFitLabel(Context context) : base(context)
{
}
protected override void OnElementChanged(ElementChangedEventArgs<Label> e)
{
base.OnElementChanged(e);
Control.SetAutoSizeTextTypeWithDefaults(AutoSizeTextType.Uniform);
}
}
对于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;
}
}
}
并在您的表单中调用 xaml:
<Label HeightRequest="80" HorizontalOptions="FillAndExpand" MaxLines="1"
Text="This Label hasset Height to 80">
</Label>