Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 标记可在材料上绘制按钮未显示_Android_Android Button_Material Components Android - Fatal编程技术网

Android 标记可在材料上绘制按钮未显示

Android 标记可在材料上绘制按钮未显示,android,android-button,material-components-android,Android,Android Button,Material Components Android,我已经尝试将一个简单的徽章添加到MaterialButton,但是没有显示徽章 我在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 (co

我已经尝试将一个简单的徽章添加到MaterialButton,但是没有显示徽章

我在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>

    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);
        }
    });