I want to prevent system font-size changing, effects to my xamarin forms android application. I tried with below code in MainActivity.cs and its working, but it tells me that it is deprecated (res.UpdateConfiguration). I tried some other codes, but no luck.
public override Resources Resources
{
get
{
Resources res = base.Resources;
Configuration config = new Configuration();
config.SetToDefaults();
res.UpdateConfiguration(config, res.DisplayMetrics);
return res;
}
}
context.getResources().updateConfiguration()
has been deprecated in Android API 25 and it is advised to use context.createConfigurationContext() instead.
public override Resources Resources
{
get
{
Configuration config = new Configuration();
config.SetToDefaults();
Context context = CreateConfigurationContext(config);
Resources resources = context.Resources;
return resources;
}
}
Check Android context.getResources.updateConfiguration() deprecated
If you want to change the font size, you should override the method AttachBaseContext
.
protected override void AttachBaseContext(Context @base)
{
// base.AttachBaseContext(@base);
Configuration config = new Configuration();
config.SetToDefaults();
config.FontScale = 1.0f;
Context context = @base.CreateConfigurationContext(config);
base.AttachBaseContext(context);
}
override fun attachBaseContext(newBase: Context) {
val config = Configuration();
config.setToDefaults();
config.setLocale(Locale("mr"))
super.attachBaseContext(newBase.createConfigurationContext(config));
}