Значок Drawable вырезается из поля зрения и не отображается должным образом Android Kotlin ⇐ Android

Форум для тех, кто программирует под Android
Anonymous
Значок Drawable вырезается из поля зрения и не отображается должным образом Android Kotlin

Сообщение Anonymous »

Эй, я хочу, чтобы значок можно было рисовать. Я попробовал код отсюда. BadgeDrawable не работает для представлений внутри FrameLayout, таких как кнопки, изображения, текстовые представления и т. д.? BadgeDrawable не отображается на элементах, кроме BottomNavigationView, Badge Drawable не отображается. Я успешно показываю, но проблема в том, что разрезается с бокового края. activity.kt

Код: Выделить всё

fun addBadgeDrawable(count: Int, target: View, parent: FrameLayout, context: Context) {
target.viewTreeObserver.addOnGlobalLayoutListener(object : ViewTreeObserver.OnGlobalLayoutListener {
override fun onGlobalLayout() {
val badgeDrawable = BadgeDrawable.create(context)
badgeDrawable.number = count
badgeDrawable.badgeGravity = BadgeDrawable.TOP_END
badgeDrawable.setBoundsFor(target, parent)
parent.foreground = badgeDrawable
target.viewTreeObserver.removeOnGlobalLayoutListener(this)
}
})
}

private fun BadgeDrawable.setBoundsFor(@NonNull anchor: View, @NonNull parent: FrameLayout) {
val rect = Rect()
parent.getDrawingRect(rect)
this.bounds = rect
this.updateBadgeCoordinates(anchor, parent)
}
Я устанавливаю значок для просмотра этой строки кода

Код: Выделить всё

addBadgeDrawable(10, binding.icon, binding.container, context)
Вывод
[img]https://i.sstatic .net/eQ7pW.png[/img]

Ожидаемый результат
Изображение


Подробнее здесь: https://stackoverflow.com/questions/696 ... oid-kotlin

Вернуться в «Android»