【问题标题】:BadgeDrawable on MaterialButton not shown未显示 MaterialButton 上的 BadgeDrawable
【发布时间】:2020-04-10 02:30:33
【问题描述】:

我尝试向 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?

【问题讨论】:

    标签: android android-button material-components-android


    【解决方案1】:

    您可以在布局中使用:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-25
      • 2021-07-26
      • 1970-01-01
      • 2020-03-27
      • 2021-12-05
      • 2020-05-08
      • 2021-04-12
      • 2016-06-26
      相关资源
      最近更新 更多