2017-09-20 143 views
0

有人可以告诉我如何编辑XF-MasterDetailPage中MasterBounds的值。 我的变化没有影响(MasterDetailPageRenderer /安卓):Xamarin Forms MasterDetailPage MasterBounds

protected override void OnLayout(bool changed, int l, int t, int r, int b) 
{ 
    base.OnLayout(changed, l, t, r, b); 
    if (page != null && page.MasterBehavior == MasterBehavior.Split) 
    { 
    if (((IMasterDetailPageController)page).MasterBounds.Y > 0) 
    { 
     Rectangle rect = ((IMasterDetailPageController)page).MasterBounds; 
     rect.Y = 0; 
     ((IMasterDetailPageController)page).MasterBounds = rect; 
    } 
    } 
} 

我需要这样做,因为Y的值是错误的一些设备上,所以有一点空间在顶部。

谢谢!

+0

你有没有用,这最终会被调用调试验证:((IMasterDetailPageController)页).MasterBounds = RECT; ? – hankide

+0

是的,它被称为 –

+0

好吧,你还检查过,在你修改它之前,Y真的不是零吗? – hankide

回答

0

如果别人需要这个,这里是解决方案:

public override void AddView(Android.Views.View child) 
{ 
    child.GetType()?.GetProperty("TopPadding")?.SetValue(child, 0); 
    base.AddView(child); 
}