我会在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(
//..
)
}