Android 标记可在材料上绘制按钮未显示
我已经尝试将一个简单的徽章添加到MaterialButton,但是没有显示徽章 我在build.gradle中尝试了以下版本: “com.google.android.material:material:1.2.0-alpha02”和“com.google.android.material:material:1.1.0-alpha06” 代码或多或少是: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
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);
}
});