summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Platform.Android/AppCompat/TabbedPageRenderer.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Xamarin.Forms.Platform.Android/AppCompat/TabbedPageRenderer.cs')
-rw-r--r--Xamarin.Forms.Platform.Android/AppCompat/TabbedPageRenderer.cs28
1 files changed, 15 insertions, 13 deletions
diff --git a/Xamarin.Forms.Platform.Android/AppCompat/TabbedPageRenderer.cs b/Xamarin.Forms.Platform.Android/AppCompat/TabbedPageRenderer.cs
index 4bd54906..243e5c14 100644
--- a/Xamarin.Forms.Platform.Android/AppCompat/TabbedPageRenderer.cs
+++ b/Xamarin.Forms.Platform.Android/AppCompat/TabbedPageRenderer.cs
@@ -44,6 +44,8 @@ namespace Xamarin.Forms.Platform.Android.AppCompat
}
}
+ IPageController PageController => Element as IPageController;
+
void IManageFragments.SetFragmentManager(FragmentManager childFragmentManager)
{
if (_fragmentManager == null)
@@ -114,7 +116,7 @@ namespace Xamarin.Forms.Platform.Android.AppCompat
}
if (Element != null)
- Element.InternalChildren.CollectionChanged -= OnChildrenCollectionChanged;
+ PageController.InternalChildren.CollectionChanged -= OnChildrenCollectionChanged;
}
base.Dispose(disposing);
@@ -123,13 +125,13 @@ namespace Xamarin.Forms.Platform.Android.AppCompat
protected override void OnAttachedToWindow()
{
base.OnAttachedToWindow();
- Element.SendAppearing();
+ PageController.SendAppearing();
}
protected override void OnDetachedFromWindow()
{
base.OnDetachedFromWindow();
- Element.SendDisappearing();
+ PageController.SendDisappearing();
}
protected override void OnElementChanged(ElementChangedEventArgs<TabbedPage> e)
@@ -139,7 +141,7 @@ namespace Xamarin.Forms.Platform.Android.AppCompat
var activity = (FormsAppCompatActivity)Context;
if (e.OldElement != null)
- e.OldElement.InternalChildren.CollectionChanged -= OnChildrenCollectionChanged;
+ ((IPageController)e.OldElement).InternalChildren.CollectionChanged -= OnChildrenCollectionChanged;
if (e.NewElement != null)
{
@@ -177,7 +179,7 @@ namespace Xamarin.Forms.Platform.Android.AppCompat
ScrollToCurrentPage();
UpdateIgnoreContainerAreas();
- tabbedPage.InternalChildren.CollectionChanged += OnChildrenCollectionChanged;
+ ((IPageController)tabbedPage).InternalChildren.CollectionChanged += OnChildrenCollectionChanged;
UpdateBarBackgroundColor();
UpdateBarTextColor();
}
@@ -216,11 +218,11 @@ namespace Xamarin.Forms.Platform.Android.AppCompat
if (width > 0 && height > 0)
{
- Element.ContainerArea = new Rectangle(0, context.FromPixels(tabsHeight), context.FromPixels(width), context.FromPixels(height - tabsHeight));
+ PageController.ContainerArea = new Rectangle(0, context.FromPixels(tabsHeight), context.FromPixels(width), context.FromPixels(height - tabsHeight));
- for (var i = 0; i < Element.InternalChildren.Count; i++)
+ for (var i = 0; i < PageController.InternalChildren.Count; i++)
{
- var child = Element.InternalChildren[i] as VisualElement;
+ var child = PageController.InternalChildren[i] as VisualElement;
if (child == null)
continue;
IVisualElementRenderer renderer = Android.Platform.GetRenderer(child);
@@ -267,7 +269,7 @@ namespace Xamarin.Forms.Platform.Android.AppCompat
void UpdateIgnoreContainerAreas()
{
- foreach (Page child in Element.Children)
+ foreach (IPageController child in Element.Children)
child.IgnoresContainerArea = child is NavigationPage;
}
@@ -275,16 +277,16 @@ namespace Xamarin.Forms.Platform.Android.AppCompat
{
TabLayout tabs = _tabLayout;
- if (position >= Element.InternalChildren.Count)
+ if (position >= PageController.InternalChildren.Count)
return;
- var leftPage = (Page)Element.InternalChildren[position];
+ var leftPage = (Page)PageController.InternalChildren[position];
IVisualElementRenderer leftRenderer = Android.Platform.GetRenderer(leftPage);
if (leftRenderer == null)
return;
- if (offset <= 0 || position >= Element.InternalChildren.Count - 1)
+ if (offset <= 0 || position >= PageController.InternalChildren.Count - 1)
{
var leftNavRenderer = leftRenderer as NavigationPageRenderer;
if (leftNavRenderer != null)
@@ -294,7 +296,7 @@ namespace Xamarin.Forms.Platform.Android.AppCompat
}
else
{
- var rightPage = (Page)Element.InternalChildren[position + 1];
+ var rightPage = (Page)PageController.InternalChildren[position + 1];
IVisualElementRenderer rightRenderer = Android.Platform.GetRenderer(rightPage);
var leftHeight = 0;