如何防止Xamarin android app的设备字体大小效果?

时间:2018-04-04 11:31:18

标签: android xamarin.forms

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

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

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

偷偷摸摸你

4 个答案:

答案 0 :(得分:2)

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

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

        return CreateConfigurationContext(config).Resources;
    }
}

答案 1 :(得分:1)

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

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

}

答案 2 :(得分:0)

我使用了拉斐尔的答案,但是当我尝试设置import matplotlib.pyplot as plt data1 = pd.DataFrame({'o_lat':[-37.8095,-37.8030,-37.8050], 'o_long':[145.0000,145.0077,145.0024], 'nearest_warehouse': ['0','1','2']}) data2= pd.DataFrame({'nearest_warehouse': ['Nickolson','Thompson','Bakers'], 'o_lat':[-37.8185,-37.8126,-37.8099], 'o_long':[144.9695,144.9470,144.9952]}) df = data1.append(data2) y = df['o_lat'].to_list() z = df['o_long'].to_list() n = df['nearest_warehouse'].to_list() fig, ax = plt.subplots() ax.scatter(z, y) for i, txt in enumerate(n): ax.annotate(txt, (z[i], y[i])) plt.gca().set_aspect('equal', adjustable='box')

时遇到了这个错误
Application.Current.MainPage

我解决了这个问题:

Binary XML file line #1: Error inflating class <unknown>

答案 3 :(得分:0)

在 Xamarin.Forms Android MainActivity.cs 中,覆盖 Resources 并将配置设置为默认值以限制字体大小对应用程序的影响。

public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
public override Resources Resources
        {
            get
            {
                Resources resource = base.Resources;
                Configuration configuration = new Configuration();
                configuration.SetToDefaults();
                if (Build.VERSION.SdkInt >= Build.VERSION_CODES.NMr1)
                {
                    return CreateConfigurationContext(configuration).Resources;
                }
                else
                {
                    resource.UpdateConfiguration(configuration, resource.DisplayMetrics);
                    return resource;
                }
            }
        }
}