android - MaterialButton 上的 BadgeDrawable 未显示

标签 android android-button material-components-android

我尝试向 MaterialButton 添加一个简单的 BadgeDrawable,但没有显示徽章。

我已经在我的 build.gradle 中尝试了以下版本:
'com.google.android.material:material:1.2.0-alpha02' 和 'com.google.android.material:material:1.1.0-alpha06' 。

代码或多或少:

private void addBadgeFor(MaterialButton button, int count) {
    if (count > 0) {
        final BadgeDrawable badge = BadgeDrawable.create(getContext());
        badge.setNumber(count);
        badge.setBackgroundColor(getActivity().getResources().getColor(R.color.badgeBackground));
        badge.setBadgeTextColor(getActivity().getResources().getColor(R.color.badgeText));
        BadgeUtils.attachBadgeDrawable(badge, button, null);
    }
}

我试过有/没有颜色。
minSdk 为 24,目标为 29。

有谁知道 MaterialButton 是否支持 BadgeDrawable?

最佳答案

您可以在布局中使用:

<FrameLayout
    android:id="@+id/layout"
    android:clipChildren="false"
    android:clipToPadding="false">

  <com.google.android.material.button.MaterialButton
      android:id="@+id/button"
      ../>

</FrameLayout>
然后在您的代码中,您可以应用 BadgeDrawable和:
    MaterialButton button = findViewById(R.id.button);

    button.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
        @Override
        public void onGlobalLayout() {
            BadgeDrawable badgeDrawable = BadgeDrawable.create(MainActivity.this);
            badgeDrawable.setNumber(9);
            
            BadgeUtils.attachBadgeDrawable(badgeDrawable, button, findViewById(R.id.layout));
            button.getViewTreeObserver().removeOnGlobalLayoutListener(this);
        }
    });
enter image description here

关于android - MaterialButton 上的 BadgeDrawable 未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59376750/

相关文章:

android - ImageView 选择器不起作用

适用于 Netbeans 6.8 的 Android 布局管理器

android - 使用 Google API 进行后台位置更新 - Fused Location Provider 不准确

android - 不同版本的自定义组件

android - 拥有android :drawableLeft with png时添加圆角

android - 如何使用自定义形状的 fab 按钮制作 Bottombar?

android - 日期选择器对话框阴影的白色背景

android - 如何在不影响 Android 文本的情况下更改按钮 alpha

android - 如何从android中的下拉菜单 Material 设计中删除下划线

android - 如何在android中使用 Material 设计制作多色不确定线性进度指示器?