Android Studio枚举左边的bug?如何禁用整个项目的RTL警告?

问题描述 投票:7回答:2

对于那些在大多数情况下加剧Lint“使用左/右而不是开始/结束属性”警告的人来说,Android Studio应该是众所周知的。我正在使用Android Studio 0.8.9,但早期版本中也存在以下问题:如果您在代码中的任何位置添加此超小代码段

public enum BiteMeLint {
    LEFT
}

Android Studio会显示警告

使用“Gravity.START”而不是“Gravity.LEFT”来确保从右到左的语言环境中的正确行为。

对于常数RIGHT也会发生这种情况,尽管它建议在这种情况下使用Gravity.END。现在我是一名开发人员,他喜欢通过遵守或者,如果不可能,通过在必要时抑制并设置“todo”或“fixme”来保持他的代码完全清除任何警告。在这里,因为我使用“LEFT”和“RIGHT”作为实际方向的常量,所以警告显然是一个错误。可悲的是,补充道

@SuppressLint("RtlHardcoded")

不会删除警告。那么如何删除这个警告的笑话呢?现在,我问,我能不能完全禁用项目的RTL警告,我肯定永远不会从右到左的语言环境启动?

android android-studio
2个回答
5
投票

根据this issue tracker,这是一个最近在Android Studio 0.8.10中修复的错误。

可以在Project Settings | Inspections | Android Lint | Unsing left/right instead of start/end attributes下找到禁用此检查的选项。因此,您可以通过取消选中该框来简单地为整个项目禁用它。


2
投票

Android Studio 3

转到文件>设置>编辑器>检查> Android> Lint>国际化>双向文本。

然后取消选中使用左/右而不是开始/结束属性。

但...

您可能不想实际禁用警告。这是有原因的。阅读Android Studio说明中的内容:

在文本从右向左流动的区域设置中呈现布局时,使用Gravity#LEFT和Gravity#RIGHT会导致问题。请改用#Gravity#START和Gravity#END。同样,在XML gravity和layout_gravity属性中,使用start而不是left。

对于诸如paddingLeft和layout_marginLeft的XML属性,请使用paddingStart和layout_marginStart。注意:如果您的minSdkVersion小于17,则应添加较旧的左/右属性以及新的开始/右侧属性。在较旧的平台上,不支持RTL并且启动/右侧属性未知且因此被忽略,您需要较旧的左/右属性。有一个单独的lint检查可以捕获这种类型的错误。

(注意:对于Gravity#LEFT和Gravity#START,即使针对较旧的平台,也可以使用这些常量,因为起始位掩码是左位掩码的超集。因此,您可以使用gravity =“start”而不是gravity =“左|启动”)。

© www.soinside.com 2019 - 2024. All rights reserved.