每当我用更大的显示大小或字体大小测试这些可访问性设置时,似乎总是会破坏我的部分布局,使其看起来很糟糕。我真的很喜欢自动调整文本的功能,但这些设置的改变似乎让自动调整文本变得毫无用处。更改显示大小也会在我的表行中产生一些奇怪的洞,原因我无法理解。加权视图似乎也会分解为它们应该如何工作。
我看到有几种方法可以绕过这些设置,并使其不受用户对这些设置的偏好的影响。你们都这样做吗?
我了解设置对用户的实用性。但是,它似乎是任意实现的,因为作为一名开发人员,为了使布局能够使用这些设置,你可能必须从一开始就缩小文本大小(如果用户选择这样做,为了适应更大的字体(,这将导致与作为开发人员的你完全相同的文本大小,如果你不想适应更大的字体大小,你会首先选择。我也相信我听说IOS不允许这些辅助功能设置影响第三方应用程序。
我只是好奇你们是怎么处理这件事的。谢谢
通过使用dp
而不是sp
,可以忽略用户喜欢的字体大小。显示器大小也是如此,如果你真的想的话,你可以检查电流密度,然后根据它画一些东西,仍然可以把东西缩小。这不是一个好方法。虽然你的布局不会打破这种方式,但喜欢更大字体/显示大小的用户仍然无法使用你的应用程序,因为他们需要更大的文本大小。
有一些不同的技术可以用来使布局更好地扩展:
- 在布局中使用
minHeight
/minWidth
属性,而不是对视图的大小进行硬编码 - 检查约束布局中的约束是否在两个方向上都绑定,而不仅仅是开始
- 允许文本视图占用多行,添加省略号选项,用户可以点击查看更多信息
我写了一篇博客文章,详细介绍了其中的一些内容:Android 的可访问文本缩放
然而,有时,为所有场景修复它需要重新思考设计。
对于iOS,字体设置也会影响所有第三方应用程序,这不仅仅是安卓的问题。
通常,您应该始终使用与比例无关的像素,尤其是对于大量文本。
但是,如果文本必须适合已知大小的边界框,则应使用密度无关的像素,以确保文本始终适合,并且无论用户的设置如何,所有字符都可见。
事实上,设置字体大小只影响sp中的大小。所以你需要做的就是在dp而不是sp中定义textSize,然后设置不会改变你的应用程序中的文本大小。
以下是文档链接:尺寸