Android 中的 paddingLeft 和 paddingStart 有什么区别?

What is the difference between paddingLeft and paddingStart in Android?

我试图在 Android 的 XML 布局中设置 LinearLayout 的填充。 但它给了我 2 个选项 - paddingLeftpaddingStart.

有什么区别,还有一个要使用的 correct/better 属性吗?

我想要最好的答案,因为这需要最好的代码。

简短的回答是:paddingStart 是从右到左 (RTL) 感知的,而 paddingLeft 不是。

您应该 paddingStart 使您的应用支持 RTL 友好,但请务必对其进行测试(有一个开发者选项可以使用您的语言强制启用 RTL,因此您不必测试您的应用用你看不懂的语言)。

如果用户处于从右到左 (RTL) 书写的语言环境中,则 paddingStart 将应用于右侧,而如果他们处于从左到右 (LTR) ) 语言环境(例如英语),它将应用在左侧。另一方面,paddingLeft 将始终应用在左侧,无论区域设置的文本方向如何。

这很有用,因为在 RTL 语言环境中布局通常是颠倒的。例如,带有联系人照片的联系人列表可能会在 LTR 语言环境的左侧显示联系人照片,在 RTL 语言环境的右侧显示联系人照片。由于照片的内边距可能与项目另一侧的内边距不同,因此您可以使用 paddingStart(对于照片的内边距)和 paddingEnd(对于项目的另一面)。

这都是关于 RTL 支持,如果您选择 paddingLeft,那么当您的应用程序在 RTL Locale 中运行时,例如。阿拉伯语你的填充将被逆转。因此,在尝试使用乌尔都语或阿拉伯语等 RTL 世界时,使用 paddingStart 和 paddingEnd 会更加安全。

注意:如果您为左右填充分配相同的值,这并不重要,它显然在 LTR 和 RTL 世界中表现相同。