Skip to content

Instantly share code, notes, and snippets.

@alexrainman
Last active August 29, 2015 14:23
Show Gist options
  • Save alexrainman/27c8c5d6207b9ef7ec7c to your computer and use it in GitHub Desktop.
Save alexrainman/27c8c5d6207b9ef7ec7c to your computer and use it in GitHub Desktop.

Revisions

  1. alexrainman revised this gist Jun 24, 2015. 1 changed file with 61 additions and 0 deletions.
    61 changes: 61 additions & 0 deletions SlidingAppCompatActivity
    Original file line number Diff line number Diff line change
    @@ -108,3 +108,64 @@ namespace YourNameSpace
    }
    }


    using Android.App;
    using Android.Content;
    using Android.Views;
    using Android.OS;
    using SlidingMenuSharp;

    namespace YourNameSpace
    {
    [Activity(Label = "Label", MainLauncher = true)]
    public class HomeActivity : SlidingAppCompatActivity
    {
    public Android.Support.V7.Widget.Toolbar Toolbar
    {
    get;
    set;
    }

    protected override void OnCreate(Bundle savedInstanceState)
    {
    base.OnCreate(savedInstanceState);

    SetContentView(Resource.Layout.home);

    Toolbar = FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);

    if (Toolbar != null)
    {
    Toolbar.SetNavigationIcon (Resource.Drawable.ic_action_menu);
    SetSupportActionBar(Toolbar);
    SupportActionBar.SetDisplayHomeAsUpEnabled(true);
    SupportActionBar.SetHomeButtonEnabled(true);
    }

    SetBehindContentView(Resource.Layout.menu_frame);
    SlidingMenu.ShadowWidthRes = Resource.Dimension.shadow_width;
    SlidingMenu.BehindOffsetRes = Resource.Dimension.slidingmenu_offset;
    SlidingMenu.ShadowDrawableRes = Resource.Drawable.shadow;
    SlidingMenu.FadeDegree = 0.25f;
    SlidingMenu.TouchModeAbove = TouchMode.Margin;
    }

    public override bool OnOptionsItemSelected(IMenuItem item)
    {
    switch (item.ItemId)
    {
    case Android.Resource.Id.Home:
    Toggle();
    return true;
    }
    return base.OnOptionsItemSelected(item);
    }

    public override bool OnCreateOptionsMenu (IMenu menu)
    {
    MenuInflater.Inflate (Resource.Menu.home_menu, menu);
    return base.OnCreateOptionsMenu (menu);
    }
    }
    }

  2. alexrainman revised this gist Jun 24, 2015. 1 changed file with 0 additions and 59 deletions.
    59 changes: 0 additions & 59 deletions Example
    Original file line number Diff line number Diff line change
    @@ -1,59 +0,0 @@
    using Android.App;
    using Android.Content;
    using Android.Views;
    using Android.OS;
    using SlidingMenuSharp;

    namespace YourNameSpace
    {
    [Activity(Label = "Label", MainLauncher = true)]
    public class HomeActivity : SlidingAppCompatActivity
    {
    public Android.Support.V7.Widget.Toolbar Toolbar
    {
    get;
    set;
    }

    protected override void OnCreate(Bundle savedInstanceState)
    {
    base.OnCreate(savedInstanceState);

    SetContentView(Resource.Layout.home);

    Toolbar = FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);

    if (Toolbar != null)
    {
    Toolbar.SetNavigationIcon (Resource.Drawable.ic_action_menu);
    SetSupportActionBar(Toolbar);
    SupportActionBar.SetDisplayHomeAsUpEnabled(true);
    SupportActionBar.SetHomeButtonEnabled(true);
    }

    SetBehindContentView(Resource.Layout.menu_frame);
    SlidingMenu.ShadowWidthRes = Resource.Dimension.shadow_width;
    SlidingMenu.BehindOffsetRes = Resource.Dimension.slidingmenu_offset;
    SlidingMenu.ShadowDrawableRes = Resource.Drawable.shadow;
    SlidingMenu.FadeDegree = 0.25f;
    SlidingMenu.TouchModeAbove = TouchMode.Margin;
    }

    public override bool OnOptionsItemSelected(IMenuItem item)
    {
    switch (item.ItemId)
    {
    case Android.Resource.Id.Home:
    Toggle();
    return true;
    }
    return base.OnOptionsItemSelected(item);
    }

    public override bool OnCreateOptionsMenu (IMenu menu)
    {
    MenuInflater.Inflate (Resource.Menu.home_menu, menu);
    return base.OnCreateOptionsMenu (menu);
    }
    }
    }
  3. alexrainman revised this gist Jun 24, 2015. 1 changed file with 0 additions and 1 deletion.
    1 change: 0 additions & 1 deletion Example
    Original file line number Diff line number Diff line change
    @@ -1,4 +1,3 @@

    using Android.App;
    using Android.Content;
    using Android.Views;
  4. alexrainman revised this gist Jun 24, 2015. 2 changed files with 60 additions and 1 deletion.
    60 changes: 60 additions & 0 deletions Example
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,60 @@

    using Android.App;
    using Android.Content;
    using Android.Views;
    using Android.OS;
    using SlidingMenuSharp;

    namespace YourNameSpace
    {
    [Activity(Label = "Label", MainLauncher = true)]
    public class HomeActivity : SlidingAppCompatActivity
    {
    public Android.Support.V7.Widget.Toolbar Toolbar
    {
    get;
    set;
    }

    protected override void OnCreate(Bundle savedInstanceState)
    {
    base.OnCreate(savedInstanceState);

    SetContentView(Resource.Layout.home);

    Toolbar = FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);

    if (Toolbar != null)
    {
    Toolbar.SetNavigationIcon (Resource.Drawable.ic_action_menu);
    SetSupportActionBar(Toolbar);
    SupportActionBar.SetDisplayHomeAsUpEnabled(true);
    SupportActionBar.SetHomeButtonEnabled(true);
    }

    SetBehindContentView(Resource.Layout.menu_frame);
    SlidingMenu.ShadowWidthRes = Resource.Dimension.shadow_width;
    SlidingMenu.BehindOffsetRes = Resource.Dimension.slidingmenu_offset;
    SlidingMenu.ShadowDrawableRes = Resource.Drawable.shadow;
    SlidingMenu.FadeDegree = 0.25f;
    SlidingMenu.TouchModeAbove = TouchMode.Margin;
    }

    public override bool OnOptionsItemSelected(IMenuItem item)
    {
    switch (item.ItemId)
    {
    case Android.Resource.Id.Home:
    Toggle();
    return true;
    }
    return base.OnOptionsItemSelected(item);
    }

    public override bool OnCreateOptionsMenu (IMenu menu)
    {
    MenuInflater.Inflate (Resource.Menu.home_menu, menu);
    return base.OnCreateOptionsMenu (menu);
    }
    }
    }
    1 change: 0 additions & 1 deletion SlidingAppCompatActivity
    Original file line number Diff line number Diff line change
    @@ -1,4 +1,3 @@

    using System;

    using Android.OS;
  5. alexrainman created this gist Jun 24, 2015.
    111 changes: 111 additions & 0 deletions SlidingAppCompatActivity
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,111 @@

    using System;

    using Android.OS;
    using Android.Views;
    using SlidingMenuSharp.App;
    using SlidingMenuSharp;
    using Android.Support.V7.App;

    namespace YourNameSpace
    {
    public class SlidingAppCompatActivity : AppCompatActivity, ISlidingActivity
    {
    private SlidingActivityHelper _helper;

    protected override void OnCreate(Bundle savedInstanceState)
    {
    base.OnCreate(savedInstanceState);
    _helper = new SlidingActivityHelper(this);
    _helper.OnCreate(savedInstanceState);
    }

    protected override void OnPostCreate(Bundle savedInstanceState)
    {
    base.OnPostCreate(savedInstanceState);
    _helper.OnPostCreate(savedInstanceState);
    }

    public override View FindViewById(int id)
    {
    var v = base.FindViewById(id);
    return v ?? _helper.FindViewById(id);
    }

    protected override void OnSaveInstanceState(Bundle outState)
    {
    base.OnSaveInstanceState(outState);
    _helper.OnSaveInstanceState(outState);
    }

    public override void SetContentView(int layoutResID)
    {
    SetContentView(LayoutInflater.Inflate(layoutResID, null));
    }

    public override void SetContentView(View view)
    {
    SetContentView(view, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MatchParent,
    ViewGroup.LayoutParams.MatchParent));
    }

    public override void SetContentView(View view, ViewGroup.LayoutParams @params)
    {
    base.SetContentView(view, @params);
    _helper.RegisterAboveContentView(view, @params);
    }

    public void SetBehindContentView(View view, ViewGroup.LayoutParams layoutParams)
    {
    _helper.SetBehindContentView(view, layoutParams);
    }

    public void SetBehindContentView(View view)
    {
    SetBehindContentView(view, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MatchParent,
    ViewGroup.LayoutParams.MatchParent));
    }

    public void SetBehindContentView(int layoutResId)
    {
    SetBehindContentView(LayoutInflater.Inflate(layoutResId, null));
    }

    public SlidingMenu SlidingMenu
    {
    get { return _helper.SlidingMenu; }
    }

    public void Toggle()
    {
    _helper.Toggle();
    }

    public void ShowContent()
    {
    _helper.ShowContent();
    }

    public void ShowMenu()
    {
    _helper.ShowMenu();
    }

    public void ShowSecondaryMenu()
    {
    _helper.ShowSecondaryMenu();
    }

    public void SetSlidingActionBarEnabled(bool enabled)
    {
    _helper.SlidingActionBarEnabled = enabled;
    }

    public override bool OnKeyUp(Keycode keyCode, KeyEvent e)
    {
    var b = _helper.OnKeyUp(keyCode, e);
    return b ? b : base.OnKeyUp(keyCode, e);
    }
    }
    }