- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
API 17/RTL 支持发布后,我在 list 中添加了以下内容
android:supportsRtl="true"
这导致 Lint 在我的 View 中有 paddingLeft/Right 的地方正确地给了我这些警告:
Consider adding android:paddingStart="8dp" to better support right-to-left layouts
Consider adding android:paddingEnd="8dp" to better support right-to-left layouts
我是按照 android-developers blogpost 中的指导进行的,这意味着我们不需要创建新的 layout-v17 文件,而是可以同时使用 paddingStart/End 以及 paddingLeft/Right 属性(需要 Left/Right 才能继续支持较低的 minSdk)。
我刚刚从以前的 Beta 版本更新到 Android Studio 1.0,并注意到一个新的 lint 错误,其中指出:
- Attribute paddingStart referenced here can result in a crash on some specific devices older than API 17 (current min is 7)
建议的修复方法是:
Override Resource in layout-v17
这是有道理的。但是,在创建 layout-v17 并从主布局文件夹中删除未使用的 paddingStart/End 之后,原始的 Lint 警告再次出现,说我应该使用 paddingStart/End。它似乎不明白我已经覆盖了 layout-v17 中的文件。
有谁知道如何解决看似冲突的 Lint 错误/警告消息?我知道我可以 tools:ignore
警告,但我希望有一个“正确”的解决方案。
编辑(1/19/15):有一个 android issue我想这会导致新的 lint 错误被添加到 Android Studio 中。这表明“某些特定设备上的崩溃”是指 API16 上的少数三星平板电脑,其中 paddingStart 有自己的定义,因此在尝试解析“8dp”时会崩溃。
上面链接中有人建议使用 layout-ldrtl 文件夹来处理 rtl 方向,而不是使用 paddingStart 和 paddingEnd。
每当您发现用户拥有 API16 平板电脑时,我还建议在其他地方覆盖 LayoutInflator 的 Factory2,然后手动设置所有 View 的属性。这肯定会起作用,但它似乎非常“手动”。
不幸的是,我无法访问这些崩溃的设备之一,所以我无法验证为什么我没有找到任何在线建议简单地将 paddingStart 放在/layout-v17/文件夹中并将 paddingLeft 放在/layout/中的人?尽管 paddingStart 仅存在于 layout-v17 中,但 API16 三星平板电脑是否仍会继续崩溃?
最佳答案
您对问题的根本原因是正确的 - 三星为 paddingStart
或 paddingEnd
保留的 id 定义了一个自定义属性。
我绕过它的方法是提取填充属性并将它们放入样式中。因此,我没有为 SDK<17 和 SDK>=17 设置不同的布局,而是为它们设置了不同的样式(在 values
和 paddingStart&End
中使用 paddingLeft&Right
在 values-v17
)。
这样,Lint 将不再提示它。
关于android - 关于 paddingStart 使用的冲突 lint 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27449776/
自从我在编写 xml 布局文件时,Eclipse 的自动完成框几次提出 android:paddingStart android:paddingStop。 我真的不明白这些属性应该做什么。 eclip
在最近的代码编写过程中,我看到单个元素仅包含 paddingLeft/Right、paddingStart/End,以及两者。 似乎找不到任何更好的东西以及为什么。任何人有任何见解/何时使用一个或另一
API 17/RTL 支持发布后,我在 list 中添加了以下内容 android:supportsRtl="true" 这导致 Lint 在我的 View 中有 paddingLeft/Right
我刚刚发现有 android:marginStart、android:marginEnd、android:paddingStart 和 android:paddingEnd。此边距和填充使用文本方向。
我最近下载了一个新的 ADT。每次保存我的项目后,它都会显示以下 XML 错误。但是当我清洁它时,同样的情况消失了。是否有相同的永久解决方案。 提前致谢。 在此行发现多个注释: - Consid
我是一名优秀的程序员,十分优秀!