protected override void OnElementChanged(ElementChangedEventArgs <TabbedPage> e)
        {
            base.OnElementChanged(e);

            try
            {
                element = Element as CurvedBottomTabbedPage;

                var metrics = Resources.DisplayMetrics;
                var width   = metrics.WidthPixels;
                var height  = metrics.HeightPixels;

                if (!(GetChildAt(0) is ViewGroup layout))
                {
                    return;
                }

                if (!(layout.GetChildAt(1) is BottomNavigationView bottomNavigationView))
                {
                    return;
                }

                bottomNavigationView.RemoveFromParent();
                bottomNavigationView.RemoveAllViews();
                bottomNavigationView.RemoveAllViewsInLayout();

                var bottomView = LayoutInflater.From(Context).Inflate(Resource.Layout.BottomNavBar, null);

                bottombar = bottomView.FindViewById <CurvedBottomNavigationView>(Resource.Id.bottom_nav_bar);
                bottombar.RemoveFromParent();
                actionbutton = bottomView.FindViewById <FloatingActionButton>(Resource.Id.fab);
                actionbutton.RemoveFromParent();

                SetTabItems();
                SettingUpMenu();
                OnChildrenCollectionChanged(null, new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset));

                SetFabProperties();
                actionbutton.Click += Actionbutton_Click;

                bottombar.LabelVisibilityMode = LabelVisibilityMode.LabelVisibilityLabeled;
                layout.AddView(actionbutton);
                layout.AddView(bottombar);
                bottombar.SetZ(0);

                UpdateBarBackgroundColor();
                UpdateBarTextColor();
                UpdateItemIconColor();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }