2017-09-20 174 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); 
}