Android 更改表格布局选项卡图标中的徽章计数

Android 更改表格布局选项卡图标中的徽章计数,android,android-tablayout,Android,Android Tablayout,我有一个包含多个选项卡的选项卡布局。其中一个在选项卡图标上显示一个数字作为标记。 因此,当tab hosting活动接收到一个通知它更新此notif计数的事件时,我会执行以下操作: @Override public void updateNotif(int notifCount) { View view = LayoutInflater.from(this).inflate(R.layout.badge_layout_workspace_count, null); TextVie

我有一个包含多个选项卡的选项卡布局。其中一个在选项卡图标上显示一个数字作为标记。 因此,当tab hosting活动接收到一个通知它更新此notif计数的事件时,我会执行以下操作:

@Override
public void updateNotif(int notifCount) {
    View view = LayoutInflater.from(this).inflate(R.layout.badge_layout_workspace_count, null);
    TextView badgeTv = (TextView) view.findViewById(R.id.badge);
    badgeTv.setText(String.valueOf(notifCount));

    view.setDrawingCacheEnabled(true);
    view.buildDrawingCache();
    mTabLayout.getTabAt(PAGE_NOTIFS).setIcon(new BitmapDrawable(getResources(), view.getDrawingCache()));
}
布局
badge\u layout\u workspace\u count
只是一个带有
ImageView
(图标)和
TextView
(notif count)的
RelativeLayout

此代码不会导致崩溃,但不会显示任何内容

知道我做错了什么吗


好的,我刚刚使用了setCustomView而不是setIcon,它现在可以正常工作了:

    View view = LayoutInflater.from(this).inflate(R.layout.badge_layout_workspace_count, null);
    TextView badgeTv = (TextView) view.findViewById(R.id.badge);
    badgeTv.setText(String.valueOf(notifCount));
    mTabLayout.getTabAt(PAGE_NOTIFS).setCustomView(view);

你为什么要再次镶嵌视图?它已经为您准备好了,只需删除该行并调用this.findViewById.nope我之前没有该视图,选项卡图标的初始设置方式为:mTabLayout.getTabAt(PAGE_NOTIFS).setIcon(R.drawable.ic_tab_notif),当并没有notif时,就并没有badgeTry调试,在setText行上放置一个断点并推断出出错的地方。我们很难这样做:)setText运行良好,但我根本看不到图标,丢失的不仅仅是徽章,我觉得DrawingCache有些地方我不明白