Skip to content

Instantly share code, notes, and snippets.

@joacar
Created July 22, 2016 07:25
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save joacar/03b36c6fee955f7aed0a7b7b9e65225d to your computer and use it in GitHub Desktop.
Save joacar/03b36c6fee955f7aed0a7b7b9e65225d to your computer and use it in GitHub Desktop.
using System.ComponentModel;
using Android.App;
using Clistr.Droid.Renderers;
using Xamarin.Forms;
using Xamarin.Forms.Platform.Android;
#if __APPCOMPAT__
using NavigationRenderer = Xamarin.Forms.Platform.Android.AppCompat.NavigationPageRenderer;
using Toolbar = Android.Support.V7.Widget.Toolbar;
#else
using NavigationRenderer = Xamarin.Forms.Platform.Android.NavigationRenderer;
using Toolbar = Android.App.ActionBar;
#endif
[assembly: ExportRenderer(typeof(NavigationPage), typeof(NavigationPageRenderer))]
namespace Clistr.Droid.Renderers
{
public class NavigationPageRenderer : NavigationRenderer
{
private Toolbar toolbar;
protected override void OnElementChanged(ElementChangedEventArgs<NavigationPage> e)
{
base.OnElementChanged(e);
SetCustomView(e.NewElement.CurrentPage.GetType().Name);
}
private void SetCustomView(string view)
{
toolbar.Subtitle = " -> " + view;
}
protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
{
base.OnElementPropertyChanged(sender, e);
if (e.PropertyName.Equals("CurrentPage"))
{
SetCustomView(((NavigationPage)sender).CurrentPage.GetType().Name);
}
}
public override void OnViewAdded(Android.Views.View child)
{
base.OnViewAdded(child);
#if __APPCOMPAT__
if (child.GetType() == typeof(Toolbar))
{
toolbar = (Toolbar)child;
}
#else
toolbar = ((Activity)Context).ActionBar;
#endif
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment