TabbedPageRendererExt.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Linq;
  5. using System.Text;
  6. using Android.App;
  7. using Android.Content;
  8. using Android.OS;
  9. using Android.Runtime;
  10. using Android.Support.Design.Widget;
  11. using Android.Support.V4.View;
  12. using Android.Support.V7.App;
  13. using Android.Views;
  14. using Android.Widget;
  15. using Xamarin.Forms.Platform.Android.AppCompat;
  16. using Xamarin.Forms;
  17. using Xamarin.Forms.Platform.Android;
  18. using XamarinFormsGoogleDriveAPI.Droid.Renderer;
  19. [assembly: ExportRenderer(typeof(NavigationPage), typeof(TabbedPageRendererExt))]
  20. namespace XamarinFormsGoogleDriveAPI.Droid.Renderer
  21. {
  22. public class TabbedPageRendererExt : NavigationPageRenderer
  23. {
  24. protected override void OnElementChanged(ElementChangedEventArgs<NavigationPage> e)
  25. {
  26. base.OnElementChanged(e);
  27. if (e.NewElement != null)
  28. {
  29. }
  30. }
  31. private void InvertLayoutThroughScale()
  32. {
  33. ViewGroup.ScaleY = -1;
  34. TabLayout tabLayout = null;
  35. ViewPager viewPager = null;
  36. for (int i = 0; i < ChildCount; ++i)
  37. {
  38. Android.Views.View view = (Android.Views.View)GetChildAt(i);
  39. if (view is TabLayout) tabLayout = (TabLayout)view;
  40. else if (view is ViewPager) viewPager = (ViewPager)view;
  41. }
  42. tabLayout.ScaleY = viewPager.ScaleY = -1;
  43. viewPager.SetPadding(0, -tabLayout.MeasuredHeight, 0, 0);
  44. }
  45. }
  46. }