Как добавить значение значка на вкладку Android? - PullRequest
0 голосов
/ 11 июля 2019

У меня есть приложение Nativescript Angular с вкладкой.Я хочу разместить значок на элементах вкладок, где требуется действие.На iOS мне это удалось, а на андроиде - нет.Я нашел эту тему: https://discourse.nativescript.org/t/nativescript-android-add-badge-on-tabview-tabs/4768 но это мне не помогло.Может быть, это больше не работает в Nativescript 5.x ...

Я использую этот код, чтобы изменить свое табулирование.Все работает, кроме android setBadge part.

import { TabView } from "tns-core-modules/ui/tab-view/tab-view";
import { isAndroid, isIOS } from "tns-core-modules/platform/platform";

export class TabViewService {

    private TabView: TabView;

    private androidInitialHeight;

    setTabView(tabview: TabView) {
        this.TabView = tabview;
        console.log("TABVIEW SET");

        if (isAndroid) {
            const tabLayout = this.TabView.nativeViewProtected.tabLayout;
            this.androidInitialHeight = tabLayout.getLayoutParams().height;
        }
    }

    getTabView() {
        return this.TabView;
    }

    hideTabView() {
        console.log("HIDING TABVIEW");
        if (isIOS) {
            this.TabView.viewController.tabBar.hidden = true;
        }
        if (isAndroid) {
            const tabLayout = this.TabView.nativeViewProtected.tabLayout;
            tabLayout.getLayoutParams().height = 0;
            tabLayout.requestLayout();
        }
    }

    showTabView() {
        console.log("SHOWING TABVIEW");
        if (isIOS) {
            this.TabView.viewController.tabBar.hidden = false;
        }
        if (isAndroid) {
            const tabLayout = this.TabView.nativeViewProtected.tabLayout;
            tabLayout.getLayoutParams().height = this.androidInitialHeight;
            tabLayout.requestLayout();
        }
    }

    setBadgeValue(tabIndex: number, value: number) {
        value = value === 0 ? null : value;
        console.log("SETTING BADGE VALUE OF INDEX: " + tabIndex);
        if (isIOS) {
            const tabItem = this.TabView.ios.tabBar.items[tabIndex];
            tabItem.badgeValue = value.toString();
        }

        if (isAndroid) {

        }
    }

}

У кого-нибудь есть совет для меня?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...