尝试投"attachBadgeDrawable"时的 Kotlin 问题:此声明是选择加入的



我会在Button上使用Android应用程序中的BadgeDrawable,问题是当我试图通过attachBadgeDrawable设置按钮布局badgeDrawable时,我会收到一个错误,上面写着:

his declaration is opt-in and its usage should be marked with  '@com.google.android.material.badge.ExperimentalBadgeUtils' or '@OptIn(markerClass = com.google.android.material.badge.ExperimentalBadgeUtils.class)'

我使用这段代码的代码如下:

btnInvia.viewTreeObserver.addOnGlobalLayoutListener(
object : OnGlobalLayoutListener {
override fun onGlobalLayout() {
val badgeDrawable = BadgeDrawable.create(requireContext())
badgeDrawable.number = corpo
badgeDrawable.verticalOffset = 20
badgeDrawable.horizontalOffset = 15
BadgeUtils.attachBadgeDrawable(badgeDrawable, btnInvia, layoutInvia)
btnInvia.viewTreeObserver.removeOnGlobalLayoutListener(this)
}
}
)

如果它可以被使用,那么最小SDK是24。

BadgeUtils用androidx注释@Experimental标记。以这种方式,报告了在这种情况下实验性API的使用,其水平=ERROR

在您的方法中,您必须使用以下注释之一来抑制报告:

@ExperimentalBadgeUtils
@UseExperimental(markerClass = ExperimentalBadgeUtils::class)
fun onCreate(savedInstanceState: Bundle?) {
//...
btnInvia.viewTreeObserver.addOnGlobalLayoutListener(
//..
)
}

您也可以使用kotlin注释@OptIn:

@OptIn(ExperimentalBadgeUtils::class)
fun onCreate(savedInstanceState: Bundle?) {
//...
btnInvia.viewTreeObserver.addOnGlobalLayoutListener(
//..
)
}

相关内容

最新更新