我在我的android版本中收到这些警告。
Warning:(19, 9) Attribute `layout_marginVertical` is only used in API level 26 and higher (current min is 24)
Warning:(20, 9) Attribute `layout_marginHorizontal` is only used in API level 26 and higher (current min is 24)
显然,我们的应用布局使用了layout_marginVertical
和layout_marginHorizontal
属性,这些属性是在API级别26中引入的。警告听起来像是这些属性在级别24的设备上不起作用,但实际上它们工作得很好。我想知道为什么我会收到这些警告,尽管看起来没有什么问题。
一个明显的解决方案是使用“手写”:marginTop
和marginBottom
,而不是marginVertical
,但如果可能的话,我希望继续使用这些“短”参数,以提高可读性并减少重复。
这些属性是24级的文档吗?或者是某种向后兼容性在起作用吗?如果是的话,为什么会有警告?
我们正在使用:
<uses-sdk
android:minSdkVersion="24"
android:targetSdkVersion="26" />
**更新:**设置targetSdkVersion="24"
似乎修复了警告,并且所需的边距继续工作。这解决了我眼前的问题,但我仍然对为什么26级的功能在24级上工作以及为什么以26级为目标会引起警告感到困惑。如果我想以26级为目标,我该怎么办?
2条答案
按热度按时间pokxtpni1#
此API似乎是在API级别26中引入的。由于您可能正在使用AppCompatActivity,因此他们可能还引入了一些对26之前SDK的向后兼容性。
此外,您收到的警告可能只是一个lint检查错误。
zzlelutf2#
从2.16版开始通过AAPT2工作。这里是confirmation。但是你应该小心,它只在布局文件中工作。它在样式文件even when there is no warning中不工作。