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

时间:2014-09-29 11:10:13

标签: android android-studio

Android Studio应该以大多数情况下只会加剧Lint"使用左/右而不是开始/结束属性"警告。我使用的是Android Studio 0.8.9,但早期版本中也存在以下问题:如果您在代码中的任何位置添加此超小代码段

public enum BiteMeLint {
    LEFT
}

Android Studio会显示警告

  

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

这也适用于常数RIGHT,但它建议在这种情况下使用Gravity.END。现在我是一个开发人员,他喜欢通过遵守或者,如果不可能,通过压制和放置一个" todo"来保持他的代码完全清除任何警告。或" fixme"在必要时。在这里,因为我使用" LEFT"和#34;右边"作为实际方向的常数,警告显然是一个错误。可悲的是,添加

@SuppressLint("RtlHardcoded")

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

3 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:2)

Android Studio 3

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

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

但是...

您可能不想实际禁用该警告。在那里是有原因的。阅读有关Android Studio的说明:

  

使用重力#LEFT   和Gravity#RIGHT会在布局中渲染时导致问题   文本从右向左流动的语言环境。使用Gravity#START和   重力#END。同样,在XML中,gravity和layout_gravity   属性,请使用start而不是left。

     

对于XML属性,例如   paddingLeft和layout_marginLeft,使用paddingStart和   layout_marginStart。注意:如果您的minSdkVersion小于17,则您   应该同时添加旧的left / right属性和新的   开始/正确属性。在不支持RTL的旧平台上   并且开始/右属性是未知的,因此被忽略,您   需要较旧的left / right属性。有单独的皮棉支票   捕获该类型的错误。

     

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

答案 2 :(得分:0)

在清单中,禁用 android:supportsRtl 属性将禁用整个模块的 Rtl lint 警告

      android:supportsRtl="false"