void IVisualElementRenderer.SetElement(VisualElement element) { MasterDetailPage oldElement = Element; MasterDetailPage newElement = Element = element as MasterDetailPage; if (oldElement != null) { ((IMasterDetailPageController)oldElement).BackButtonPressed -= OnBackButtonPressed; oldElement.PropertyChanged -= HandlePropertyChanged; oldElement.Appearing -= MasterDetailPageAppearing; oldElement.Disappearing -= MasterDetailPageDisappearing; } var statusBarHeight = 0; if (Forms.IsLollipopOrNewer) statusBarHeight = ((FormsAppCompatActivity)Context).GetStatusBarHeight(); if (newElement != null) { if (_detailLayout == null) { _detailLayout = new MasterDetailContainer(newElement, false, Context) { TopPadding = statusBarHeight, LayoutParameters = new LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent) }; _masterLayout = new MasterDetailContainer(newElement, true, Context) { TopPadding = ((IMasterDetailPageController)newElement).ShouldShowSplitMode ? statusBarHeight : 0, LayoutParameters = new LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent) { Gravity = (int)GravityFlags.Start } }; if (_fragmentManager != null) { _detailLayout.SetFragmentManager(_fragmentManager); _masterLayout.SetFragmentManager(_fragmentManager); } AddView(_detailLayout); AddView(_masterLayout); Device.Info.PropertyChanged += DeviceInfoPropertyChanged; AddDrawerListener(this); } UpdateBackgroundColor(newElement); UpdateBackgroundImage(newElement); UpdateMaster(); UpdateDetail(); ((IMasterDetailPageController)newElement).BackButtonPressed += OnBackButtonPressed; newElement.PropertyChanged += HandlePropertyChanged; newElement.Appearing += MasterDetailPageAppearing; newElement.Disappearing += MasterDetailPageDisappearing; SetGestureState(); Presented = newElement.IsPresented; newElement.SendViewInitialized(this); } OnElementChanged(oldElement, newElement); // Make sure to initialize this AFTER event is fired if (_tracker == null) _tracker = new VisualElementTracker(this); }
void IVisualElementRenderer.SetElement(VisualElement element) { MasterDetailPage oldElement = Element; MasterDetailPage newElement = Element = element as MasterDetailPage; if (oldElement != null) { ((IMasterDetailPageController)oldElement).BackButtonPressed -= OnBackButtonPressed; oldElement.PropertyChanged -= HandlePropertyChanged; oldElement.Appearing -= MasterDetailPageAppearing; oldElement.Disappearing -= MasterDetailPageDisappearing; } var statusBarHeight = 0; if (Forms.IsLollipopOrNewer) { statusBarHeight = ((FormsAppCompatActivity)Context).GetStatusBarHeight(); } if (newElement != null) { if (_detailLayout == null) { _detailLayout = new MasterDetailContainer(newElement, false, Context) { TopPadding = statusBarHeight, LayoutParameters = new LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent) }; _masterLayout = new MasterDetailContainer(newElement, true, Context) { TopPadding = ((IMasterDetailPageController)newElement).ShouldShowSplitMode ? statusBarHeight : 0, LayoutParameters = new LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent) { Gravity = (int)GravityFlags.Start } }; if (_fragmentManager != null) { _detailLayout.SetFragmentManager(_fragmentManager); _masterLayout.SetFragmentManager(_fragmentManager); } AddView(_detailLayout); AddView(_masterLayout); Device.Info.PropertyChanged += DeviceInfoPropertyChanged; AddDrawerListener(this); } UpdateBackgroundColor(newElement); UpdateBackgroundImage(newElement); UpdateMaster(); UpdateDetail(); ((IMasterDetailPageController)newElement).BackButtonPressed += OnBackButtonPressed; newElement.PropertyChanged += HandlePropertyChanged; newElement.Appearing += MasterDetailPageAppearing; newElement.Disappearing += MasterDetailPageDisappearing; SetGestureState(); Presented = newElement.IsPresented; newElement.SendViewInitialized(this); } OnElementChanged(oldElement, newElement); // Make sure to initialize this AFTER event is fired if (_tracker == null) { _tracker = new VisualElementTracker(this); } }
void IVisualElementRenderer.SetElement(VisualElement element) { MasterDetailPage oldElement = Element; MasterDetailPage newElement = Element = element as MasterDetailPage; if (oldElement != null) { Device.Info.PropertyChanged -= DeviceInfoPropertyChanged; ((IMasterDetailPageController)oldElement).BackButtonPressed -= OnBackButtonPressed; oldElement.PropertyChanged -= HandlePropertyChanged; oldElement.Appearing -= MasterDetailPageAppearing; oldElement.Disappearing -= MasterDetailPageDisappearing; RemoveDrawerListener(this); if (_detailLayout != null) { RemoveView(_detailLayout); } if (_masterLayout != null) { RemoveView(_masterLayout); } } if (newElement != null) { if (_detailLayout == null) { _detailLayout = new MasterDetailContainer(newElement, false, Context) { LayoutParameters = new LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent) }; _masterLayout = new MasterDetailContainer(newElement, true, Context) { LayoutParameters = new LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent) { Gravity = (int)GravityFlags.Start } }; if (_fragmentManager != null) { _detailLayout.SetFragmentManager(_fragmentManager); _masterLayout.SetFragmentManager(_fragmentManager); } AddView(_detailLayout); AddView(_masterLayout); Device.Info.PropertyChanged += DeviceInfoPropertyChanged; AddDrawerListener(this); } UpdateBackgroundColor(newElement); UpdateBackgroundImage(newElement); UpdateMaster(); UpdateDetail(); UpdateFlowDirection(); ((IMasterDetailPageController)newElement).BackButtonPressed += OnBackButtonPressed; newElement.PropertyChanged += HandlePropertyChanged; newElement.Appearing += MasterDetailPageAppearing; newElement.Disappearing += MasterDetailPageDisappearing; SetGestureState(); Presented = newElement.IsPresented; newElement.SendViewInitialized(this); } OnElementChanged(oldElement, newElement); // Make sure to initialize this AFTER event is fired if (_tracker == null) { _tracker = new VisualElementTracker(this); } if (element != null && !string.IsNullOrEmpty(element.AutomationId)) { SetAutomationId(element.AutomationId); } SetContentDescription(); }