有关 paddingStart 使用的冲突 lint 消息

2024-05-16

API 17 / RTL 支持发布后,我将以下内容添加到我的清单中

android:supportsRtl="true"

这导致 Lint 在我的视图中有 paddingLeft/Right 的地方正确地向我发出这些警告:

  • 考虑添加 android:paddingStart="8dp" 以更好地支持从右到左的布局

  • 考虑添加 android:paddingEnd="8dp" 以更好地支持从右到左的布局

我按照此中的指导进行了此操作Android 开发者博客文章 http://android-developers.blogspot.com/2013/03/native-rtl-support-in-android-42.html,这意味着我们不需要创建新的layout-v17文件,而可以只使用paddingStart/End以及paddingLeft/Right属性(Left/Right需要继续支持较低的minSdk)。


我刚刚从之前的 Beta 版本更新到 Android Studio 1.0,并且注意到一个新的 lint 错误,其中指出:

  • 此处引用的属性 paddingStart 可能会导致某些早于 API 17 的特定设备崩溃(当前最小值为 7)

建议的修复是:

覆盖layout-v17中的资源

这是有道理的。然而,在创建layout-v17并从主布局文件夹中删除未使用的paddingStart/End之后,原始的Lint警告再次出现,提示我应该使用paddingStart/End。它似乎不明白我已经覆盖了layout-v17中的文件。

有谁知道如何解决似乎冲突的 Lint 错误/警告消息?我知道我可以tools:ignore警告,但我希望有一个“适当的”解决方案。


编辑(2015 年 1 月 19 日):有一个安卓问题 https://code.google.com/p/android/issues/detail?id=60055我认为这导致了新的 lint 错误被添加到 Android Studio 中。这表明“在某些特定设备上崩溃”是指 API16 上的少数三星平板电脑,其中 paddingStart 有自己的定义,因此当它尝试解析“8dp”时会崩溃。

上面链接中的一些人建议使用layout-ldrtl文件夹来处理rtl方向,而不是使用paddingStart和paddingEnd。

我还在其他地方提出过建议,只要您发现用户有 API16 平板电脑,就覆盖 LayoutInflator 的 Factory2,然后手动设置所有视图的属性。这肯定会起作用,但看起来非常“手动”。

不幸的是,我无法访问这些崩溃的设备之一,所以我无法验证为什么我没有在网上找到任何人建议简单地将 paddingStart 放在 /layout-v17/ 文件夹中,并将 paddingLeft 放在 /layout/ 中?尽管 paddingStart 仅出现在layout-v17 中,API16 三星平板电脑是否仍会继续崩溃?


您对问题的根本原因的看法是正确的 - 三星为保留的 id 定义了一个自定义属性paddingStart or paddingEnd.

我绕过这个问题的方法是提取填充属性并将它们放入样式中。因此,我没有为 SDK=17 采用不同的布局,而是为它们采用不同的样式(paddingLeft&Right in values and paddingStart&End in values-v17).

这样,Lint 将不再抱怨它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有关 paddingStart 使用的冲突 lint 消息 的相关文章

随机推荐

  • 全局变量声明

    我是 Python 的初学者 并且已经处理过全局变量的概念 当我以为我理解了这个概念时 我看到了一段简短的代码 证明我错了 message global def enclosure message enclosure def local g
  • ::after 内联 HTML 电子邮件?

    banner width 34px height 52px position relative color white font size 11px letter spacing 0 2em text align center float
  • 主题以编程方式设置。如何重新加载 Activity 来应用

    如何在不重新启动整个应用程序的情况下应用主题 如果我这样做startActivity getIntent finish 活动退出并且不重新启动 是否可以简单地重新启动 重新创建活动来应用主题 它的顺序不正确 finish intent ne
  • 针对特定值的 Linq OrderBy

    Linq 中是否有一种方法可以在不知道值的顺序的情况下对一组值 在本例中为字符串 执行 OrderBy 考虑这个数据 A B A C B C D E 以及这些变量 字符串第一优先 第二优先 第三优先 当值设置如下时 firstPref A
  • 如何正确地将 Facebook JavaScript SDK 注入 AngularJS 控制器?

    我是 AnuglarJS 的新手 并且已经用它构建了一个小型网络应用程序 我想将 Facebook JavaScript SDK 与它一起使用 但使用最佳实践 依赖项注入控制器 以维护应用程序结构和可测试性 我找到了这个https grou
  • Play 框架:从 Build.sbt 读取版本

    我看到了很多关于如何从 build sbt 读取版本的问题 并且已经提供了很多解决方法来解决如何将 build sbt 指向 conf application conf 并在中指定版本改为conf application conf 我有一个
  • 将roottools.jar导入Android Studio

    我正在尝试从这里导入 roottools https code google com p roottools https code google com p roottools jar 文件 到 Android Studio 项目 到目前为
  • 将 Dropout 与 Keras 和 LSTM/GRU 单元结合使用

    在 Keras 中 您可以像这样指定 dropout 层 model add Dropout 0 5 但对于 GRU 单元 您可以将 dropout 指定为构造函数中的参数 model add GRU units 512 return se
  • 序列化表达式树

    我正在用 C 做一个分布式系统 并且遇到了障碍 我需要能够使用类型序列化谓词 Predicate
  • 如果文件为空,如何跳过文件行

    python 3中的程序 这是我的第一个涉及文件的程序 我需要忽略注释行 以 开头 和空行 然后拆分这些行 以便它们可迭代 但我不断收到 IndexError 消息 指出字符串索引超出范围 并且程序在空行处崩溃 import os path
  • ssl.SSLEOFError: EOF 发生违反协议 (_ssl.c:1129)

    我正在尝试使用 GOOGLE Drive Api 从电脑上传多个文件到云端硬盘 from pydrive auth import GoogleAuth from pydrive drive import GoogleDrive import
  • Jenkins:在管道 Jenkins 文件内执行 AWS CLI 命令

    您知道如何在 aws 中执行 AWS CLI 命令吗 Jenkinsfile为了建立管道 我没有找到任何插件 首先 您需要在服务器上安装 aws cli 并确保 jenkins 用户有权运行它 或者在创建 EC2 实例时简单地使用 Amaz
  • 在应用程序创建完成时设置 Spark DataGrid 列的默认排序(Flex 4.5)

    我有一个包含多个列的 Spark DataGrid 组件 我希望我的应用程序默认按 DataGrid 中第一列的降序排列 我想使用单击顶部标题一次时发生的内置默认排序 我不需要对我正在使用的 ArrayCollection 进行排序或更改比
  • Locale.getDefault() 始终返回 en

    unix 机器上的服务器始终使用 en 作为默认区域设置 以下是区域设置输出 LANG en US LC CTYPE C LC NUMERIC C LC TIME C LC COLLATE C LC MONETARY C LC MESSAG
  • 数学组合的完美最小哈希

    首先定义两个整数N and K where N gt K 两者都在编译时已知 例如 N 8 and K 3 接下来 定义一组整数 0 N or 1 N 如果这使答案更简单 并调用它S 例如 0 1 2 3 4 5 6 7 的子集数量S wi
  • 构建动态 ConstraintViolation 错误消息

    我写了一个由自定义实现的验证注释ConstraintValidator 我也想生成非常具体的ConstraintViolation使用消息插值期间验证过程中计算的值的对象 public class CustomValidator imple
  • R data.table 多个条件连接

    我设计了一种解决方案 用于从两个单独数据表的多个列中查找值 并添加基于新列的值计算 多个条件比较 代码如下 它涉及在计算两个表中的值时使用 data table 和联接 但是 这些表没有联接在我正在比较的列上 因此我怀疑我可能无法获得 da
  • 尝试修改 MC Forge 1.12.2,但 SetupDecompWorkspace 无法正常工作

    我正在尝试为 Minecraft Forge 1 12 2 制作一个 mod mdk 文件 forge 1 12 2 14 23 5 2854 mdk 问题是 当我右键单击该文件夹时 打开 Powershell 并运行 gradlew se
  • JavaScript 单行“if”语句 - 最好的语法,这个替代方案吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 尽管意见仍然如此 但已经明确指出 放弃单行中的大括号if语句的可维护性和可读性并不理想 但这又如何呢 if lemons document wr
  • 有关 paddingStart 使用的冲突 lint 消息

    API 17 RTL 支持发布后 我将以下内容添加到我的清单中 android supportsRtl true 这导致 Lint 在我的视图中有 paddingLeft Right 的地方正确地向我发出这些警告 考虑添加 android