public static void UpdateFromElement(this BadgeView badgeView, Page element) { var badgeText = TabBadge.GetBadgeText(element); badgeView.Text = badgeText; var tabColor = TabBadge.GetBadgeColor(element); if (tabColor != Color.Default) { badgeView.BadgeColor = tabColor.ToAndroid(); } var tabTextColor = TabBadge.GetBadgeTextColor(element); if (tabTextColor != Color.Default) { badgeView.TextColor = tabTextColor.ToAndroid(); } // set font if not default var font = TabBadge.GetBadgeFont(element); if (font != Font.Default) { badgeView.Typeface = font.ToTypeface(); } var margin = TabBadge.GetBadgeMargin(element); badgeView.SetMargins((float)margin.Left, (float)margin.Top, (float)margin.Right, (float)margin.Bottom); badgeView.Postion = TabBadge.GetBadgePosition(element); }
private ContentPage CreateTab3() { var tab3 = new ContentPage { Title = "Tab2", Content = new StackLayout { VerticalOptions = LayoutOptions.Center, Orientation = StackOrientation.Vertical, BackgroundColor = Color.AliceBlue, Children = { new Label { HorizontalTextAlignment = TextAlignment.Center, Text = "Welcome to Xamarin Forms Tab2!" }, new Image { Margin = new Thickness(0, 40), VerticalOptions = LayoutOptions.CenterAndExpand, HorizontalOptions = LayoutOptions.Center, Source = "tabicon.png" } } } }; TabBadge.SetBadgeText(tab3, "1+"); TabBadge.SetBadgeColor(tab3, Color.FromHex("#A0FFA500")); return(tab3); }
public void UpdateUnReadCount(long unReadCount) { Device.BeginInvokeOnMainThread(() => { var page = this as BottomTabbedPage; if (Device.RuntimePlatform == Device.Android) { if (page?.Tabs.Count > 0) { page.Tabs[1].BadgeCaption = (int)unReadCount; } } else { if (unReadCount <= 0) { TabBadge.SetBadgeText(conversation, ""); } else { if (unReadCount > 5) { TabBadge.SetBadgeText(conversation, "5+" + ""); } else { TabBadge.SetBadgeText(conversation, unReadCount + ""); } } } }); }
protected virtual void OnTabbedPagePropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { var element = sender as Element; if (element == null) { return; } BadgeView badgeView; if (!BadgeViews.TryGetValue(element, out badgeView)) { return; } if (e.PropertyName == TabBadge.BadgeTextProperty.PropertyName) { badgeView.Text = TabBadge.GetBadgeText(element); return; } if (e.PropertyName == TabBadge.BadgeColorProperty.PropertyName) { badgeView.BadgeColor = TabBadge.GetBadgeColor(element).ToAndroid(); } }
private void UpdateTabBarItems() { try { for (int i = 0; i < this.TabBar.Items.Length; i++) { var page = this.Tabbed.GetChildPageWithTransform(i); var tabItem = this.TabBar.Items[i]; page.PropertyChanged += OnTabbedPagePropertyChanged; if (TabbedPageTransforms.GetHideTitle(page)) { this.hidepageIndex = i; this.hidepageTitle = page.Title; this.UpdateHideTitle(tabItem); } this.UpdateTabBadgeText(tabItem, page); this.UpdateTabBadgeColor(tabItem, page); this.UpdateTabBadgeTextAttributes(tabItem, page); if (!string.IsNullOrEmpty(TabBadge.GetBadgeText(page))) { var view = this.GetTabItemView(tabItem.Title, true); if (view != null) { this.UpdateBadgeView(page, view, (float)view.Frame.Width); } } } } catch { } }
private void UpdateTabBadgeTextAttributes(UITabBarItem tabBarItem, Element element) { if (!tabBarItem.RespondsToSelector(new ObjCRuntime.Selector("setBadgeTextAttributes:forState:"))) { // method not available, ios < 10 Console.WriteLine("Plugin.Badge: badge text attributes only available starting with iOS 10.0."); return; } var attrs = new UIStringAttributes(); var textColor = TabBadge.GetBadgeTextColor(element); if (textColor != Color.Default) { attrs.ForegroundColor = textColor.ToUIColor(); } var font = TabBadge.GetBadgeFont(element); if (font != Font.Default) { attrs.Font = font.ToUIFont(); } tabBarItem.SetBadgeTextAttributes(attrs, UIControlState.Normal); }
protected virtual void OnTabbedPagePropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { var element = sender as Element; if (element == null) { return; } var tabItems = Control.GetDescendantsOfType <TabItem>(); var tabItem = tabItems.FirstOrDefault(t => t.Label == ((Page)element).Title); if (tabItem == null) { return; } if (e.PropertyName == TabBadge.BadgeTextProperty.PropertyName) { tabItem.BadgeText = TabBadge.GetBadgeText(element); return; } if (e.PropertyName == TabBadge.BadgeColorProperty.PropertyName) { tabItem.BadgeColor = new Xaml.Media.SolidColorBrush( ColorHelper.XamarinFormColorToWindowsColor( TabBadge.GetBadgeColor(element))); } SetSelectedTab(Control); }
public static void UpdateFromPropertyChangedEvent(this BadgeView badgeView, Element element, PropertyChangedEventArgs e) { if (e.PropertyName == TabBadge.BadgeTextProperty.PropertyName) { badgeView.Text = TabBadge.GetBadgeText(element); } else if (e.PropertyName == TabBadge.BadgeColorProperty.PropertyName) { badgeView.BadgeColor = TabBadge.GetBadgeColor(element).ToAndroid(); } else if (e.PropertyName == TabBadge.BadgeTextColorProperty.PropertyName) { badgeView.TextColor = TabBadge.GetBadgeTextColor(element).ToAndroid(); } else if (e.PropertyName == TabBadge.BadgeFontProperty.PropertyName) { badgeView.Typeface = TabBadge.GetBadgeFont(element).ToTypeface(); } else if (e.PropertyName == TabBadge.BadgePositionProperty.PropertyName) { badgeView.Postion = TabBadge.GetBadgePosition(element); } else if (e.PropertyName == TabBadge.BadgeMarginProperty.PropertyName) { var margin = TabBadge.GetBadgeMargin(element); badgeView.SetMargins((float)margin.Left, (float)margin.Top, (float)margin.Right, (float)margin.Bottom); } }
private void AddTabBadge(int tabIndex) { var element = Element.Children[tabIndex]; var view = _tabLayout?.GetTabAt(tabIndex).CustomView ?? _tabStrip?.GetChildAt(tabIndex); var badgeView = (view as ViewGroup)?.FindChildOfType <BadgeView>(); if (badgeView == null) { var imageView = (view as ViewGroup)?.FindChildOfType <ImageView>(); var badgeTarget = imageView?.Drawable != null ? (Android.Views.View)imageView : (view as ViewGroup)?.FindChildOfType <TextView>(); //create badge for tab badgeView = new BadgeView(Context, badgeTarget); } BadgeViews[element] = badgeView; //get text var badgeText = TabBadge.GetBadgeText(element); badgeView.Text = badgeText; // set color if not default var tabColor = TabBadge.GetBadgeColor(element); if (tabColor != Color.Default) { badgeView.BadgeColor = tabColor.ToAndroid(); } // set text color if not default var tabTextColor = TabBadge.GetBadgeTextColor(element); if (tabTextColor != Color.Default) { badgeView.TextColor = tabTextColor.ToAndroid(); } // set font if not default var font = TabBadge.GetBadgeFont(element); if (font != Font.Default) { badgeView.Typeface = font.ToTypeface(); } var margin = TabBadge.GetBadgeMargin(element); badgeView.SetMargins((float)margin.Left, (float)margin.Top, (float)margin.Right, (float)margin.Bottom); // set position badgeView.Postion = TabBadge.GetBadgePosition(element); element.PropertyChanged += OnTabbedPagePropertyChanged; }
private void Entry_TextChanged(object sender, TextChangedEventArgs e) { count = ntf.count.ToString(); if (!string.IsNullOrEmpty(count) && count != "0") { TabBadge.SetBadgeText(tb, count); } }
public object Convert(object value, Type targetType, object parameter, CultureInfo language) { if (value is Element element) { return(string.IsNullOrEmpty(TabBadge.GetBadgeText(element)) ? Visibility.Collapsed : Visibility.Visible); } return(Visibility.Collapsed); }
public object Convert(object value, Type targetType, object parameter, CultureInfo language) { if (value is Element element) { return(TabBadge.GetBadgeText(element)); } return(null); }
public object Convert(object value, Type targetType, object parameter, CultureInfo language) { if (value is Element element) { var margin = TabBadge.GetBadgeMargin(element); return(new Thickness(margin.Left, margin.Top, margin.Right, margin.Bottom)); } return(new Thickness(0)); }
public object Convert(object value, Type targetType, object parameter, string language) { if (value is Page) { var badgeText = TabBadge.GetBadgeText((Page)value); return(badgeText); } return(string.Empty); }
public object Convert(object value, Type targetType, object parameter, string language) { var element = value as Element; if (element != null) { return(TabBadge.GetBadgeText(element)); } return(null); }
public object Convert(object value, Type targetType, object parameter, string language) { var element = value as Element; if (element != null) { return(string.IsNullOrEmpty(TabBadge.GetBadgeText(element)) ? Visibility.Collapsed : Visibility.Visible); } return(Visibility.Collapsed); }
public object Convert(object value, Type targetType, object parameter, string language) { var element = value as Element; if (element != null) { var margin = TabBadge.GetBadgeMargin(element); return(new Windows.UI.Xaml.Thickness(margin.Left, margin.Top, margin.Right, margin.Bottom)); } return(null); }
public object Convert(object value, Type targetType, object parameter, string language) { if (value is Page) { var badgeColor = TabBadge.GetBadgeColor((Page)value); var color = ColorHelper.XamarinFormColorToWindowsColor(badgeColor); return(new SolidColorBrush(color)); } return(null); }
public object Convert(object value, Type targetType, object parameter, CultureInfo language) { if (value is Element element) { var font = TabBadge.GetBadgeFont(element); if (font.FontAttributes.HasFlag(FontAttributes.Italic)) { return(FontStyles.Italic); } } return(FontStyles.Normal); }
protected virtual void OnTabbedPagePropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { var element = sender as Element; if (element == null) { return; } if (!BadgeViews.TryGetValue(element, out BadgeView badgeView)) { return; } if (e.PropertyName == TabBadge.BadgeTextProperty.PropertyName) { badgeView.Text = TabBadge.GetBadgeText(element); return; } if (e.PropertyName == TabBadge.BadgeColorProperty.PropertyName) { badgeView.BadgeColor = TabBadge.GetBadgeColor(element).ToAndroid(); return; } if (e.PropertyName == TabBadge.BadgeTextColorProperty.PropertyName) { badgeView.TextColor = TabBadge.GetBadgeTextColor(element).ToAndroid(); return; } if (e.PropertyName == TabBadge.BadgeFontProperty.PropertyName) { badgeView.Typeface = TabBadge.GetBadgeFont(element).ToTypeface(); return; } if (e.PropertyName == TabBadge.BadgePositionProperty.PropertyName) { badgeView.Postion = TabBadge.GetBadgePosition(element); return; } if (e.PropertyName == TabBadge.BadgeMarginProperty.PropertyName) { var margin = TabBadge.GetBadgeMargin(element); badgeView.SetMargins((float)margin.Left, (float)margin.Top, (float)margin.Right, (float)margin.Bottom); return; } }
protected virtual void OnTabbedPagePropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { var element = sender as Element; if (element == null) { return; } if (!BadgeViews.TryGetValue(element, out BadgeView badgeView)) { return; } if (e.PropertyName == TabBadge.BadgeTextProperty.PropertyName) { badgeView.Text = TabBadge.GetBadgeText(element); return; } if (e.PropertyName == TabBadge.BadgeColorProperty.PropertyName) { badgeView.Color = TabBadge.GetBadgeColor(element); return; } if (e.PropertyName == TabBadge.BadgeTextColorProperty.PropertyName) { badgeView.TextColor = TabBadge.GetBadgeTextColor(element); return; } if (e.PropertyName == TabBadge.BadgeFontProperty.PropertyName) { badgeView.Font = TabBadge.GetBadgeFont(element); return; } if (e.PropertyName == TabBadge.BadgePositionProperty.PropertyName) { badgeView.Position = TabBadge.GetBadgePosition(element); return; } if (e.PropertyName == TabBadge.BadgeMarginProperty.PropertyName) { badgeView.Margin = TabBadge.GetBadgeMargin(element); return; } }
private ContentPage CreateTab3() { var tab3 = new ContentPage { Title = "Tab3", Content = new StackLayout { VerticalOptions = LayoutOptions.Center, Orientation = StackOrientation.Vertical, BackgroundColor = Color.AliceBlue, Children = { new Label { HorizontalTextAlignment = TextAlignment.Center, Text = "Welcome to Xamarin Forms Tab3!" }, new Image { Margin = new Thickness(0, 40), VerticalOptions = LayoutOptions.CenterAndExpand, HorizontalOptions = LayoutOptions.Center, Source = "tabicon.png" }, new Button { Text = "Change tab icon", Command = new Command(() => { var page = ((this.MainPage as NavigationPage)?.CurrentPage as TabbedPage)?.GetChildPageWithBadge(2); page.Icon = page.Icon == null ? "tabicon.png" : null; }) }, new Button { Text = "Navigate to other page", Command = new Command(() => { (this.MainPage as NavigationPage)?.PushAsync(CreateNavigationPage()); }) } } } }; TabBadge.SetBadgeText(tab3, "1+"); TabBadge.SetBadgeColor(tab3, Color.FromHex("#A0FFA500")); return(tab3); }
public object Convert(object value, Type targetType, object parameter, CultureInfo language) { if (value is Element element) { var color = TabBadge.GetBadgeColor(element); if (color == Color.Default) { color = Color.Red; } return(color.ToBrush()); } return(new SolidColorBrush(new System.Windows.Media.Color())); }
private void UpdateTabBadgeColor(UITabBarItem tabBarItem, Element element) { if (!tabBarItem.RespondsToSelector(new ObjCRuntime.Selector("setBadgeColor:"))) { Console.WriteLine("Plugin.Badge: badge color only available starting with iOS 10.0."); return; } var tabColor = TabBadge.GetBadgeColor(element); if (tabColor != Color.Default) { tabBarItem.BadgeColor = tabColor.ToUIColor(); } }
public object Convert(object value, Type targetType, object parameter, string language) { var element = value as Element; if (element != null) { var font = TabBadge.GetBadgeFont(element); if (font.FontAttributes.HasFlag(FontAttributes.Italic)) { return(Windows.UI.Text.FontStyle.Italic); } } return(Windows.UI.Text.FontStyle.Normal); }
void TabbedPage_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { if (e.PropertyName == TabBadge.BadgeTextProperty.PropertyName) { var tabIndex = Tabbed.Children.IndexOf(sender as Page); TabBar.Items[tabIndex].BadgeValue = TabBadge.GetBadgeText(sender as Page); return; } if (e.PropertyName == TabBadge.BadgeColorProperty.PropertyName) { var tabIndex = Tabbed.Children.IndexOf(sender as Page); TabBar.Items[tabIndex].BadgeColor = TabBadge.GetBadgeColor(sender as Page).ToUIColor(); return; } }
private void showBadge() { string strBadgeNum; int badgeNum = Preferences.Get("badgeNum", 0); if (badgeNum > 0) { //strBadgeNum = badgeNum.ToString(); strBadgeNum = "1"; } else { strBadgeNum = string.Empty; } TabBadge.SetBadgeText(NotiTab, strBadgeNum); }
public object Convert(object value, Type targetType, object parameter, string language) { var element = value as Element; if (element != null) { var position = TabBadge.GetBadgePosition(element); if (Enum.TryParse <PanelAlignemnet>(parameter?.ToString(), out var panelAlignement)) { return(Alignments[position][(int)panelAlignement]); } } return(false); }
public object Convert(object value, Type targetType, object parameter, string language) { var element = value as Element; if (element != null) { var color = TabBadge.GetBadgeTextColor(element); if (color == Color.Default) { color = Color.Black; } return(color.ToBrush()); } return(null); }
protected virtual void AddTabBadge(int tabIndex) { var segment = _segmentedControl.Subviews[tabIndex]; var element = Tabbed.GetChildPageWithBadge(tabIndex); element.PropertyChanged += OnTabbedPagePropertyChanged; var badge = new BadgeView(segment, false) { Color = TabBadge.GetBadgeColor(element), TextColor = TabBadge.GetBadgeTextColor(element), Text = TabBadge.GetBadgeText(element) }; BadgeViews.Add(element, badge); }