问题描述
我正在尝试在标签中实现autofit选项,即减小标签的字体大小以适合同一行。尝试使用效果和自定义渲染器。在iOS上运作良好,但在Android上却无法运作。 根据{{3}}博客的说法,该实现在android上不起作用,因为我在Label内使用了格式化文本,而自定义字体不支持。但是,我仍然无法解决问题。有人遇到过这个问题吗?任何建议都会有很大帮助。预先谢谢你。
在PCL项目上
<Label>
<Label.Effects>
<effects:AutoSizeLabelEffect />
</Label.Effects>
<Label.FormattedText>
<FormattedString>
<Span Style="fontfamily1" Text="text1" />
<Span Style="fontfamily2" Text="text2" />
</FormattedString>
</Label.FormattedText>
</Label>
public class AutoSizeLabelEffect : RoutingEffect
{
public AutoSizeLabelEffect() : base("XXX.AutoSizeLabelEffect")
{
}
}
在Android项目上->效果-> OnAttached方法
protected override void OnAttached()
{
if(Control is TextView textView)
{
var effect = Element
.Effects
.OfType<AutoSizeLabelEffect>()
.FirstOrDefault();
if(effect != null)
{
TextViewCompat.SetAutoSizeTextTypeUniformWithConfiguration(
textView,effect.MinTextSize,effect.MaxTextSize,autoSizeStepGranularity: 2,(int)ComplexUnitType.Dip);
}
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)