修复关于`layout_marginHorizo​​ntal`的android studio警告

aaa*_*dan 13 android android-version android-layout android-support-library

我在我的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)
Run Code Online (Sandbox Code Playgroud)

显然,我们的应用程序的布局使用了API级别26中引入的属性layout_marginVertical和layout_marginHorizontal属性.警告使得听起来好像这些属性在24级设备上不起作用,但实际上它们完美地工作.我想明白为什么我会收到这些警告,尽管看似没有错.

一个明显的解决方案是使用"longhand":marginTop而marginBottom不是marginVertical,但我希望尽可能继续使用这些"短"参数,以提高可读性并减少重复.

这些属性是否未记入第24级?或者在游戏中是否存在某种向后兼容性?如果是这样,为什么要警告?

我们正在使用:

<uses-sdk
    android:minSdkVersion="24"
    android:targetSdkVersion="26" />
Run Code Online (Sandbox Code Playgroud)

更新:设置targetSdkVersion="24"似乎可以修复警告,并且所需的边距继续有效.这解决了我的眼前问题,但我感到困惑,为什么一个26级功能适用于24级了,为什么目标水平26引起的警告.如果我想要达到26级,我该怎么办?

小智 1

这个API似乎是在API级别26中引入的。由于您可能正在使用AppCompatActivity,也许他们还为26之前的SDK引入了一些向后兼容性。文档

此外,您收到的警告可能只是 lint 检查错误。