2017-09-20 5 views
0

kann mir jemand sagen, wie man den Wert für MasterBounds in XF-MasterDetailPage bearbeitet. Meine Änderungen haben keine Auswirkungen (MasterDetailPageRenderer/Android):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; 
    } 
    } 
} 

ich brauche, dies zu tun, weil der Wert für Y auf einigen Geräten falsch ist, so gibt es an der Spitze ein wenig Platz.

Danke!

+0

Sie mit dem Debugger vergewissert haben, dass diese schließlich aufgerufen wird: ((IMasterDetailPageController) Seite) .MasterBounds = rect; ? – hankide

+0

Ja, wird es –

+0

aufgerufen Ok, haben Sie auch überprüft, dass Y wirklich etwas anderes als Null ist, bevor Sie es ändern? – hankide

Antwort

0

Falls jemand anderes muss dies hier ist die Lösung:

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