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 == CustomTabbedPage.BadgeTextProperty.PropertyName) { tabItem.BadgeText = CustomTabbedPage.GetBadgeText(element); return; } if (e.PropertyName == CustomTabbedPage.BadgeColorProperty.PropertyName) { tabItem.BadgeColor = new Xaml.Media.SolidColorBrush( ColorHelper.XamarinFormColorToWindowsColor( CustomTabbedPage.GetBadgeColor(element))); } SetSelectedTab(Control); }
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 == CustomTabbedPage.BadgeTextProperty.PropertyName) { badgeView.Text = CustomTabbedPage.GetBadgeText(element); return; } if (e.PropertyName == CustomTabbedPage.BadgeColorProperty.PropertyName) { badgeView.BadgeColor = CustomTabbedPage.GetBadgeColor(element).ToAndroid(); } }
/// <summary> /// Initialize method for class MainPage. /// </summary> void InitializeComponent() { Title = "MainPage"; var tabbedPage = new CustomTabbedPage { Children = { new NewsFeedPage { }, new FriendsPage { }, new MessagePage { }, new NoticePage { } }, }; tabbedPage.Title = tabbedPage.CurrentPage.Title; tabbedPage.CurrentPageChanged += (s, e) => { ((TabbedPage)s).Title = ((TabbedPage)s).CurrentPage.Title; }; NavigationPage.SetHasBackButton(tabbedPage, false); this.PushAsync(tabbedPage); }
private void OnTabbedPagePropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { var page = sender as Page; if (page == null) { return; } if (e.PropertyName == CustomTabbedPage.BadgeTextProperty.PropertyName) { var tabIndex = Tabbed.Children.IndexOf(page); if (tabIndex < TabBar.Items.Length) { UpdateTabBadgeText(TabBar.Items[tabIndex], page); } return; } if (e.PropertyName == CustomTabbedPage.BadgeColorProperty.PropertyName) { var tabIndex = Tabbed.Children.IndexOf(page); if (tabIndex < TabBar.Items.Length) { TabBar.Items[tabIndex].BadgeColor = CustomTabbedPage.GetBadgeColor(page).ToUIColor(); } } }
void SetupTabbedPage() { _tabbedNavigationPage = new CustomTabbedPage (); _summaryPage = new CustomNavigationPage(new SummaryPage()); _summaryPage.Title = "Summary"; _summaryPage.TabIcon = FontAwesome.FALineChart; _summaryPage.SelectedTabIcon = FontAwesome.FALineChart; _tabbedNavigationPage.Children.Add(_summaryPage); _debtsPage = new CustomNavigationPage(new DebtListPage()); _debtsPage.Title = "Debts"; _debtsPage.TabIcon = FontAwesome.FABank; _debtsPage.SelectedTabIcon = FontAwesome.FABank; _tabbedNavigationPage.Children.Add(_debtsPage); _paymentsPage = new CustomNavigationPage(new PaymentListPage()); _paymentsPage.Title = "Income"; _paymentsPage.TabIcon = FontAwesome.FAMoney; _paymentsPage.SelectedTabIcon = FontAwesome.FAMoney; _tabbedNavigationPage.Children.Add(_paymentsPage); _amortizationPage = new CustomNavigationPage(new AmortizationListPage()); _amortizationPage.Title = "Amortization"; _amortizationPage.TabIcon = FontAwesome.FACalendar; _amortizationPage.SelectedTabIcon = FontAwesome.FACalendar; _tabbedNavigationPage.Children.Add(_amortizationPage); this.Detail = _tabbedNavigationPage; }
protected override void OnElementChanged(VisualElementChangedEventArgs e) { base.OnElementChanged(e); if (e.NewElement != null) { tabbedController = (UITabBarController)ViewController; } tab = (CustomTabbedPage)e.NewElement; }
public object Convert(object value, Type targetType, object parameter, string language) { if (value is Page) { var badgeText = CustomTabbedPage.GetBadgeText((Page)value); return(badgeText); } return(string.Empty); }
public object Convert(object value, Type targetType, object parameter, string language) { if (value is Page) { var badgeColor = CustomTabbedPage.GetBadgeColor((Page)value); var color = ColorHelper.XamarinFormColorToWindowsColor(badgeColor); return(new SolidColorBrush(color)); } return(null); }
private void AddTabBadge(int tabIndex) { var element = Tabbed.Children[tabIndex]; element.PropertyChanged += OnTabbedPagePropertyChanged; if (TabBar.Items.Length > tabIndex) { var tabBarItem = TabBar.Items[tabIndex]; UpdateTabBadgeText(tabBarItem, element); var tabColor = CustomTabbedPage.GetBadgeColor(element); if (tabColor != Color.Default) { tabBarItem.BadgeColor = tabColor.ToUIColor(); } } }
protected override void SetTabIcon(TabLayout.Tab tab, FileImageSource icon) { base.SetTabIcon(tab, icon); if (tab.Text == "菜单" || tab.Text == "搜索") { tab.SetCustomView(Resource.Layout.CustomTablayout); var customView = Element as CustomTabbedPage; var imagebtn = tab.CustomView.FindViewById <Android.Widget.ImageButton>(Resource.Id.tabpage_btn); imagebtn.Background = tab.Icon; imagebtn.Click += (sender, e) => { if (tab.Text == "菜单") { CustomTabbedPage.OnMenuClicked(customView, EventArgs.Empty); } else if (tab.Text == "搜索") { CustomTabbedPage.OnSearchClick(customView, EventArgs.Empty); } }; } }
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 = CustomTabbedPage.GetBadgeText(element); badgeView.Text = badgeText; // Set color if not default var tabColor = CustomTabbedPage.GetBadgeColor(element); if (tabColor != Xamarin.Forms.Color.Default) { badgeView.BadgeColor = tabColor.ToAndroid(); } element.PropertyChanged += OnTabbedPagePropertyChanged; }
public App() { var tb = new CustomTabbedPage() { }; tb.Children.Add(new ContentPage() { Title = "Vermelho", Content = new StackLayout() { BackgroundColor = Color.Red }, Icon = "edit.png" }); tb.Children.Add(new ContentPage() { Title = "Azul", Content = new StackLayout() { BackgroundColor = Color.Blue }, Icon = "add.png" }); tb.Children.Add(new ContentPage() { Title = "Verde", Content = new StackLayout() { BackgroundColor = Color.Green }, Icon = "search.png" }); // The root page of your application MainPage = tb; }
public App() { var tb = new CustomTabbedPage() { }; tb.Children.Add(new ContentPage() { Title = "Vermelho", Content = new StackLayout() { BackgroundColor = Color.Red }, Icon = "edit.png" }); tb.Children.Add(new ContentPage() { Title = "Azul", Content = new StackLayout() { BackgroundColor = Color.Blue }, Icon = "add.png" }); tb.Children.Add(new ContentPage() { Title = "Verde", Content = new StackLayout() { BackgroundColor = Color.Green }, Icon = "search.png" }); // The root page of your application MainPage = tb; }
public App() { InitializeComponent(); MainPage = new CustomTabbedPage(); }
private void UpdateTabBadgeText(UITabBarItem tabBarItem, Element element) { var text = CustomTabbedPage.GetBadgeText(element); tabBarItem.BadgeValue = string.IsNullOrEmpty(text) ? null : text; }
protected void CreateMenuPage(string menuPageTitle) { //var _menuPage = new MenuViewModel //{ // Title = menuPageTitle, //}; //var listView = new ListView(); //listView.ItemsSource = new string[] { "Contacts", "Quotes", "Modal Demo" }; //listView.ItemSelected += async (sender, args) => //{ // switch ((string)args.SelectedItem) // { // //case "Contacts": // // _tabbedNavigationPage.CurrentPage = _contactsPage; // // break; // //case "Quotes": // // _tabbedNavigationPage.CurrentPage = _quotesPage; // // break; // case "Modal Demo": // var modalPage = FreshPageModelResolver.ResolvePageModel<ProfileViewModel>(CurrentUser); // await PushPage(modalPage, null, true); // break; // default: // break; // } // IsPresented = false; //}; ////_menuPage.Content = listView; //this.Master = new NavigationPage(_menuPage) { Title = "Menu" }; //_masterDetailPage = new MasterDetailPage(); //masterDetail.ToolbarItems.Add(profile); //masterDetail.ToolbarItems.Add(location); _tabbedNavigationPage = new CustomTabbedPage(); _tabbedNavigationPage.AddTab <HomeViewModel>(null, "home.png", CurrentUser); _tabbedNavigationPage.AddTab <BrowserViewModel>(null, "browser.png", CurrentUser); _tabbedNavigationPage.AddTab <PulerViewModel>(null, "pulear.png", CurrentUser); _tabbedNavigationPage.AddTab <ContactViewModel>(null, "message.png", CurrentUser); //var masterPage = FreshPageModelResolver.ResolvePageModel<MasterViewModel>(CurrentUser); //masterPage.Title = "Master View Model"; //_menuPage.ToolbarItems.Add(profile); //_menuPage.ToolbarItems.Add(location); //var masterPageArea = new FreshNavigationContainer(masterPage, "MasterPageArea"); //masterPageArea.Title = "Menu"; //this.Title = "Prueba"; this.Master = new NavigationPage(FreshPageModelResolver.ResolvePageModel <MenuViewModel>(CurrentUser)) { Title = "Menu" }; this.Detail = _tabbedNavigationPage; }