在android中单击底部导航菜单的一个位置时如何隐藏/清除徽章?

android broadcastreceiver badge bottomnavigationview

819 观看

2回复

214 作者的声誉

我被困于隐藏徽章NavigationView。当我收到任何通知时,添加了位置为的徽章,BottomNavigationNiew但单击该位置时无法刷新该批次。

摇篮:

compile 'com.github.ittianyu:BottomNavigationViewEx:1.1.7'
compile 'q.rorbin:badgeview:1.1.0'

主要活动:

private Badge addBadgeAt(int position, int number) {
        return new QBadgeView(this)
                .setBadgeNumber(number)
                .setGravityOffset(42, 2, true)
                .bindTarget(bottomNavigationView.getBottomNavigationItemView(position)); 
}


@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {

    FragmentManager fragmentManager;
    FragmentTransaction fragmentTransaction;

    switch (item.getItemId()) {
        case R.id.menu_conection:

            fragmentManager = getSupportFragmentManager();
            fragmentTransaction = fragmentManager.beginTransaction();
            fragmentTransaction.replace(R.id.container, ConnectionFragment.newInstance("connection"));
            fragmentTransaction.commit();

            break;
        case R.id.menu_me:
            fragmentManager = getSupportFragmentManager();
            fragmentTransaction = fragmentManager.beginTransaction();
            fragmentTransaction.replace(R.id.container, MyProfile.newInstance(ARG_TYPE));
            fragmentTransaction.commit();

            break;

        case R.id.menu_notification:

            fragmentManager = getSupportFragmentManager();
            fragmentTransaction = fragmentManager.beginTransaction();
            fragmentTransaction.replace(R.id.container, NotificationsFragment.newInstance());
            fragmentTransaction.commit();

            break;
    }

    return true;
}

我只想在单击时在第二位置删除徽章 menu_notification

作者: pb123 的来源 发布者: 2017 年 9 月 15 日

回应 2


3

32 作者的声誉

public static void removeBadge(int position, BottomNavigationViewEx bottomNavigationViewEx, QBadgeView badgeView) {
badgeView.bindTarget(bottomNavigationViewEx.getBottomNavigationItemView(position))
                .hide(true);
    }
作者: Alper - Android Developer 发布者: 2018 年 2 月 13 日

0

813 作者的声誉

调用addBadgeAt函数时,需要将返回的Badge对象分配给变量:

mBadge = addBadgeAt(2, 1);

然后,当您要删除徽章时,只需调用hide方法:

mBadge.hide(true);

注意:似乎两次调用hide方法都使徽章再次可见。

您可以在此处查看文档:https : //github.com/qstumn/BadgeView

作者: Isaac Bosca 发布者: 2018 年 6 月 7 日
32x32