为什么 TextView 的默认文本方向与语言环境不匹配?
Why doesn't the default text direction for a TextView match the locale?
TL;DR 在 RTL 布局中,是否应镜像拉丁文本,如果是,为什么 Android 默认不这样做?
我正在尝试在我的应用程序中实现 RTL 支持,我遇到的一个问题 运行 是默认情况下拉丁字符不会出现在 TextView
或 EditText
。我本以为即使应用程序没有被翻译成 RTL 语言,其行为也应该是仍然镜像文本。
调查一下,通过设置 android:textDirection="locale"
甚至 android:textAlignment="viewStart"
可以轻松解决这个问题,但为什么这不是默认设置?所以这让我想知道这是否是显示 RTL 拉丁文本的正确方法,或者它是否仍应与原始脚本匹配。
这张图片可以帮助说明我所指的内容。这里 EditText
光标在右边,但英文提示仍然在左边。
首先,我是伊朗人,我们的语言是RTL。实际上这完全取决于您的应用程序的设计,但在大多数情况下我们通常期望默认行为(如您提供的照片)。您可以查看 Alibaba Travels 的屏幕截图,这是在伊朗购买机票最流行的应用程序。当 airports/cities 的名称是波斯语时,它们右对齐,英语名称则相反。
但在某些情况下,例如 table 显示大多数项目都是 RTL 的产品描述,将 LTR 项目右对齐是完全有意义的。你可以看看下面的Digikala(它是伊朗最大的在线商店)
TL;DR 在 RTL 布局中,是否应镜像拉丁文本,如果是,为什么 Android 默认不这样做?
我正在尝试在我的应用程序中实现 RTL 支持,我遇到的一个问题 运行 是默认情况下拉丁字符不会出现在 TextView
或 EditText
。我本以为即使应用程序没有被翻译成 RTL 语言,其行为也应该是仍然镜像文本。
调查一下,通过设置 android:textDirection="locale"
甚至 android:textAlignment="viewStart"
可以轻松解决这个问题,但为什么这不是默认设置?所以这让我想知道这是否是显示 RTL 拉丁文本的正确方法,或者它是否仍应与原始脚本匹配。
这张图片可以帮助说明我所指的内容。这里 EditText
光标在右边,但英文提示仍然在左边。
首先,我是伊朗人,我们的语言是RTL。实际上这完全取决于您的应用程序的设计,但在大多数情况下我们通常期望默认行为(如您提供的照片)。您可以查看 Alibaba Travels 的屏幕截图,这是在伊朗购买机票最流行的应用程序。当 airports/cities 的名称是波斯语时,它们右对齐,英语名称则相反。
但在某些情况下,例如 table 显示大多数项目都是 RTL 的产品描述,将 LTR 项目右对齐是完全有意义的。你可以看看下面的Digikala(它是伊朗最大的在线商店)