Skip to content

Instantly share code, notes, and snippets.

@alexrainman
Last active August 29, 2015 14:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alexrainman/27c8c5d6207b9ef7ec7c to your computer and use it in GitHub Desktop.
Save alexrainman/27c8c5d6207b9ef7ec7c to your computer and use it in GitHub Desktop.
SlidingMenuSharp AppCompat Activity for Xamarin.Android.Support.v7.AppCompat 22.2.*
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);
}
}
}
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);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment