尝试转换 "attachBadgeDrawable" 时的 Kotlin 问题:此声明是可选的
Kotlin issue when trying to cast "attachBadgeDrawable": This declaration is opt-in
我会在 Button
上的 Android 应用程序中使用 BadgeDrawable
,问题是当我尝试设置按钮布局时 badgeDrawable
通过 attachBadgeDrawable
我收到一条错误消息:
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。
classBadgeUtils
用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(
//..
)
}
我会在 Button
上的 Android 应用程序中使用 BadgeDrawable
,问题是当我尝试设置按钮布局时 badgeDrawable
通过 attachBadgeDrawable
我收到一条错误消息:
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。
classBadgeUtils
用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(
//..
)
}