Как добавить значок с цифрой (Badge) на элемент меню в Toolbar?
Дано:
Toolbar c элементом меню.
Задача:
Добавить кружок с числом. Например для отображения кол-ва покупок в корзине или кол-ва сообщений каких-то.
Вопрос:
Таки как это сделать?
Ответы (1 шт):
Автор решения: ЮрийСПб
→ Ссылка
Эту фичу (эксперементально!) добавили в версии 1.3.0-alpha04 библиотеки com.google.android.material:material:${materialVersion}
Пользоваться можно так:
Подключаем нужную версию либы:
implementation "com.google.android.material:material:${materialVersion}"В случае, если меню из фрагмента отображаем, пишем в методе
onCreateOptionsMenu@SuppressLint("UnsafeExperimentalUsageError") override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) { inflater.inflate(R.menu.YOUR_MENU_RESOURSE, menu) val badgeDrawable = BadgeDrawable.create(requireContext()) badgeDrawable.number = 5 badgeDrawable.backgroundColor = ContextCompat.getColor(requireContext(), R.color.SOME_COLOR_HERE) badgeDrawable.badgeTextColor = ContextCompat.getColor(requireContext(), R.color.SOME_COLOR_HERE) badgeDrawable.badgeGravity = BadgeDrawable.TOP_END BadgeUtils.attachBadgeDrawable(badgeDrawable, REFERENCE_TO_TOOLBAR, R.id.MENU_ITEM_ID_HERE) super.onCreateOptionsMenu(menu, inflater) }Т.к. фича экспериментальная, требуется аннотация над методом, где мы это делаем:
@SuppressLint("UnsafeExperimentalUsageError")
Результат:
