Last active
August 29, 2015 14:23
-
-
Save alexrainman/27c8c5d6207b9ef7ec7c to your computer and use it in GitHub Desktop.
SlidingMenuSharp AppCompat Activity for Xamarin.Android.Support.v7.AppCompat 22.2.*
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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