I am trying to change width of master page in landscape mode for tablet. I have used renderer for that. Using that i am able to change the master page width in mobile phone. But it is not working for tablet.
Create one xamarin forms project in Master-Detail template.
2.Create MasterDetailPagePCL class fro renderer.
public class MasterDetailPagePCL : MasterDetailPage
{
public static readonly BindableProperty DrawerWidthProperty =
BindableProperty.Create("DrawerWidth", typeof(float),
typeof(MasterDetailPagePCL), 0.1f, BindingMode.TwoWay, null);
public float DrawerWidth
{
get { return (float)GetValue(DrawerWidthProperty); }
set { SetValue(DrawerWidthProperty, value); }
}
}
In Android project I have added this renderer.
public class MasterDetailAndroidRenderer : MasterDetailRenderer
{
public MasterDetailAndroidRenderer(Context context) : base(context)
{
}
public override void AddView(Android.Views.View child)
{
MasterDetailPagePCL page = (MasterDetailPagePCL)this.Element;
LayoutParams p = (LayoutParams)child.LayoutParameters;
p.Width = 160;
base.AddView(child,p);
}
}
Width of master page should get changed as per the "DrawerWidth" peoperty.
Width of master page not changing as per the "DrawerWidth" peoperty.
Xamarin Forms version: 4.4.0.991265
@13atec030 Can you please attach a small project that demonstrates this issue? Thanks!
Hi Samhouts,
i am unable to add the sample . i am reproducing this issue in the default master detail template sample . Also Set MasterBehaviour as SplitOnLandscape Please look into this.
In PCL, add one custom file
public class MasterDetailPagePCL : MasterDetailPage
{
public static readonly BindableProperty DrawerWidthProperty =
BindableProperty.Create("DrawerWidth", typeof(float),
typeof(MasterDetailPagePCL), 0.1f, BindingMode.TwoWay, null);
public float DrawerWidth
{
get { return (float)GetValue(DrawerWidthProperty); }
set { SetValue(DrawerWidthProperty, value); }
}
}
And in android renderer, add renderer file
public class MasterDetailAndroidRenderer : MasterDetailRenderer
{
public MasterDetailAndroidRenderer(Context context) : base(context)
{ }
public override void AddView(Android.Views.View child)
{
MasterDetailPagePCL page = (MasterDetailPagePCL)this.Element;
LayoutParams p = (LayoutParams)child.LayoutParameters;
p.Width = 160;
base.AddView(child,p);
}
}
Thanks inadvance
I can reproduce this issue
App22.zip
Is there any update on this ? Can you please give us any workaround to resolve the issue? Please make it as priority
Most helpful comment
Is there any update on this ? Can you please give us any workaround to resolve the issue? Please make it as priority