I need to override a function in Xamarin because I get the error:
Illegal Argument Exception - DrawerLayout must be measured with MeasureSpec.EXACTLY
I have derived a class as shown:
using Android.Content;
using Android.Support.V4.Widget;
using Android.Views;
namespace Tut48_4.Droid
{
public class MyDrawerLayout : DrawerLayout
{
public MyDrawerLayout(Context inContext):base(inContext)
{
}
public MyDrawerLayout(
Context inContext,
Android.Util.IAttributeSet attrs):base(inContext,attrs)
{
}
public MyDrawerLayout(
Context inContext,
Android.Util.IAttributeSet attrs,
int defStyle) : base(inContext, attrs,defStyle)
{
}
protected override void OnMeasure(int widthMeasureSpec, int heightMeasureSpec)
{
widthMeasureSpec = MeasureSpec.MakeMeasureSpec(
MeasureSpec.GetSize(widthMeasureSpec),
MeasureSpecMode.Exactly);
heightMeasureSpec = MeasureSpec.MakeMeasureSpec(
MeasureSpec.GetSize(heightMeasureSpec),
MeasureSpecMode.Exactly);
base.OnMeasure(widthMeasureSpec, heightMeasureSpec);
}
}
}
However I get a cast exception using the code:
var mytest = FindViewById(Resource.Id.drawer_layout);
mDrawerLayout = (MyDrawerLayout)FindViewById(Resource.Id.drawer_layout);
First statement works, second fails. I'm new to this so please feel free to ask the obvious questions.