У меня есть приложение 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) {
}
}
}
У кого-нибудь есть совет для меня?