我看到了this stack overflow post,但这并没有帮助我理解我必须做的事情。我了解如何从查询中增加计数器的值的概念。

但是我不明白我应该使用什么。我应该使用Notification notification;还是BadgeViewer badgeViewer;?我希望我不必导入库。

最佳答案

为选项卡制作布局资源。它应该包含代表您的“徽章”的内容(如果您只想显示一个数字,一个简单的TextView将起作用)。创建选项卡时,请指定此自定义布局。

private TabLayout tabLayout;

// in onCreate()
tabLayout = (TabLayout) findViewById(R.id.tabs);
for (int i = 0; i < NUM_TABS; i++) {
    TabLayout.Tab tab = tabLayout.newTab()
            .setText("tab name")
            .setCustomView(R.layout.custom_tab);
    tabLayout.addTab(tab);
}


请注意,为了使setText()正常工作,您的布局需要带有TextViewandroid:id="@android:id/text1"(这不是标志文本,这是选项卡名称)。

当您想要更新选项卡的徽章时,可以获取Tab并询问其视图,找到徽章并设置其文本。

TabLayout.Tab tab = tabLayout.getTabAt(3); // fourth tab
View tabView = tab.getCustomView();
TextView badgeText = (TextView) tabView.findViewById(R.id.badge_text);
badgeText.setText(...);

10-01 04:52
查看更多