Xamarin.Forms android - 调整控件大小以考虑可访问性设置

Posted

技术标签:

【中文标题】Xamarin.Forms android - 调整控件大小以考虑可访问性设置【英文标题】:Xamarin.Forms android - adjusting control sizes to account for accessibility settings 【发布时间】:2018-02-14 18:32:52 【问题描述】:

android 上,出于可访问性的原因,用户可以设置更大的字体。

像这样的讨论详细介绍了命名或固定(数字)大小如何/是否受可访问性设置影响。

我有一个稍微不同的问题。有没有办法调整控件的大小以考虑字体大小?对于我们的应用程序,如果用户在 Accessibility 下设置了较大的字体大小,那么按钮、Infragistics DataGrids、ListViews 等中的文本将不适合他们的控件。我错过了什么吗?

【问题讨论】:

【参考方案1】:

出于可访问性的原因,用户可以设置更大的字体。

您可以尝试使用以下代码来实现此功能:

 private void initFontScale()
 
      Configuration configuration = Resources.Configuration;
      configuration.FontScale = (float)1.45;
      //0.85 small, 1 standard, 1.15 big,1.3 more bigger ,1.45 supper big 
      DisplayMetrics metrics = new DisplayMetrics();
      WindowManager.DefaultDisplay.GetMetrics(metrics);
      metrics.ScaledDensity = configuration.FontScale * metrics.Density;
      BaseContext.Resources.UpdateConfiguration(configuration, metrics);


protected override void OnCreate(Bundle bundle)

    initFontScale();
    ...

像这样的讨论会详细讨论命名或固定(数字)大小如何/是否受可访问性设置影响。

我不太明白你的意思,如果你需要为你的应用设置一个固定的文字大小,你可以参考:

how to prevent system font-size changing effects to android application?

【讨论】:

我在帖子中的意思是如何允许用户在可访问性设置下更改字体。我认为代码(和链接)有解决方案。 虽然我还没有尝试上面链接中的建议,但这看起来是正确的方法,因此设置为我的问题的答案。

以上是关于Xamarin.Forms android - 调整控件大小以考虑可访问性设置的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin.forms(或)xamarin.ios/xamarin.android(或)本机

Xamarin.Forms 是 Xamarin.Android、Xamarin.IoS 和 Xamarin.Win 的简单总和吗?

在 Xamarin.Forms 中使用 Android 绑定

Xamarin.Forms 3.1.0+版本 Android 原生支持底部导航栏

Xamarin.Forms 3.1.0+版本 Android 原生支持底部导航栏啦

Xamarin.Forms:Android 项目构建错误 - AppData\Local\Xamarin 文件夹中缺少文件