如果我更改设备字体,那么我的应用程序字体也会随之更改。我不想根据设备字体更改我的应用程序字体。
所以我搜索了一下,发现了Dimension。
请告诉我如何在Xamarin中为Android使用dp。还建议我任何其他适当的方法来解决这个问题。
所以我搜索了一下,发现了Dimension。
请告诉我如何在Xamarin中为Android使用dp。还建议我任何其他适当的方法来解决这个问题。
Robbit的回答是正确的,但Resources.UpdateConfiguration()已经被弃用。因此,目前应该这样做:
public override Resources Resources
{
get
{
var config = new Configuration();
config.SetToDefaults();
return CreateConfigurationContext(config).Resources;
}
}
public override Resources Resources {
get
{
Resources res = base.Resources;
Configuration config = new Configuration();
config.SetToDefaults();
res.UpdateConfiguration(config, res.DisplayMetrics);
return res;
}
}
AppDelegate
中吗? - jtthEnableAccessibilityScalingForNamedFontSizes
。https://learn.microsoft.com/en-gb/xamarin/xamarin-forms/platform/ios/named-font-size-scaling - greg84我使用了Rafael的答案,但是当我尝试设置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;
}
}
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;
}
}
}
}
UpdateConfiguration
被弃用的信息。 - Robbit