如何防止 Xamarin android 应用程序的设备字体大小影响?

Udd*_*rne 2 android xamarin.forms

如果我更改设备字体,那么它也会更改我的应用程序字体。我不想根据设备字体更改我的应用程序字体。

所以我搜索了我在下面找到的链接:https : //developer.android.com/guide/topics/resources/more-resources.html#Dimension

请让我知道如何在 xamarin for android 中使用 dp。还建议我任何其他正确的方法来解决这个问题。

打你

小智 9

Robbit 的回答是正确的,但 Resources.UpdateConfiguration() 已被弃用。所以,目前,应该这样做:

public override Resources Resources 
{
    get
    {
        var config = new Configuration();
        config.SetToDefaults();

        return CreateConfigurationContext(config).Resources;
    }
}
Run Code Online (Sandbox Code Playgroud)


小智 8

我使用了拉斐尔的答案,但当我尝试设置时出现此错误Application.Current.MainPage

二进制 XML 文件第 1 行:膨胀类 <unknown> 时出错

我这样做解决了它:

public override Android.Content.Res.Resources Resources
{
    get
    {
        var config = base.Resources.Configuration;
        if (config == null)
            config = new Configuration();
        config.FontScale = 1f;
        return CreateConfigurationContext(config).Resources;
    }
}
Run Code Online (Sandbox Code Playgroud)


Rob*_*bit 6

在您的活动中,添加以下内容:

public override Resources Resources {
    get
    {
        Resources res = base.Resources;
        Configuration config = new Configuration();
        config.SetToDefaults();
        res.UpdateConfiguration(config, res.DisplayMetrics);
        return res;
    }

}
Run Code Online (Sandbox Code Playgroud)