tablayout 增加 badge
时间: 2023-07-27 08:07:02 浏览: 147
如果您使用的是 Android 原生的 TabLayout,可以通过以下步骤来为 TabLayout 增加 Badge:
1. 在布局文件中添加 BadgeView
在布局文件中为每个 TabItem 添加一个 BadgeView,例如:
```xml
<com.example.BadgeView
android:id="@+id/badge_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="1"
android:layout_marginLeft="4dp"
android:layout_marginTop="4dp"
app:layout_constraintTop_toTopOf="@+id/tab_icon"
app:layout_constraintStart_toEndOf="@+id/tab_icon" />
```
这里使用了一个自定义的 BadgeView,您也可以使用其他的库或自己实现。
2. 在代码中为 BadgeView 设置数字
在 Activity 或 Fragment 中,为每个 BadgeView 设置对应的数字,例如:
```java
BadgeView badgeView = findViewById(R.id.badge_view);
badgeView.setNumber(1);
```
您可以根据实际需求来设置数字,例如未读消息数量等。
3. 将 BadgeView 与 TabItem 绑定
在 TabLayout 的 OnTabSelectedListener 中,将 BadgeView 与当前选中的 TabItem 绑定,例如:
```java
tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
BadgeView badgeView = tab.getCustomView().findViewById(R.id.badge_view);
badgeView.bindTarget(tab.getCustomView().findViewById(R.id.tab_icon));
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
// do nothing
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
// do nothing
}
});
```
这里假设 TabItem 中的图标使用了 id 为 `tab_icon` 的 ImageView。
通过以上步骤,您就可以为 TabLayout 增加 Badge 了。
阅读全文