@StringRes,@ DrawRes,@ LayoutRes等android注解lint检查与kotlin参数

Bel*_*loo 7 android kotlin

假设您有这样的具有默认参数的数据类

data class Info(
        @DrawableRes
        val iconRes: Int = 0,
        @StringRes
        val stringRes: Int = 0,
        @LayoutRes
        val layoutRes: Int = 0)
Run Code Online (Sandbox Code Playgroud)

所以你可以创建这样的数据类

    val data = Info(
        iconRes = R.drawable.icon, 
        stringRes = R.string.text,
        layoutRes = R.layout.layout)
Run Code Online (Sandbox Code Playgroud)

在这种情况下,没有任何lint错误

但是,当我尝试使用默认参数时,会发生lint错误:

val data = Info(
        //here is expected resource of type drawable error
        stringRes = R.string.text
        layoutRes = R.layout.layout)
Run Code Online (Sandbox Code Playgroud)

似乎它在参数中使用位置,而不是确切的类型和名称.

我试过使用类似的显式注释@param:DrawableRes,但结果相同.

我可以以某种方式解决这个问题吗?我使用最新的Android Studio 3.0.

Bel*_*loo 5

这是 Android Studio 中的一个问题,并在 3.1 中修复。在 3.1-beta4 上检查