2016-07-30 22 views
1

Ich versuche, die Größe von benutzerdefinierten DialogFragment festzulegen. Ich habe so etwas versucht:Wie wird die DialogFragment-Größe in Xamarin festgelegt?

class ChannelEdit : DialogFragment 
{ 
    public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
    { 
     base.OnCreateView(inflater, container, savedInstanceState); 
     var view = inflater.Inflate(Resource.Layout.ChannelEdit, container, false); 
     DisplayMetrics dm = new DisplayMetrics(); 
     this.Dialog.Window.WindowManager.DefaultDisplay.GetMetrics(dm); 
     int width = dm.WidthPixels; 
     int height = dm.HeightPixels; 
     this.Dialog.Window.SetLayout((int)width/2, (int)height/2); 
     return view; 
    } 
} 

Aber es funktioniert nicht. Ich erhalte keine Fehler. Könntest du mir dabei helfen?

+0

Ja, beide sind eingestellt. – Shagohad

+0

Versuchen Sie, ** wrap_content ** zu ** android: layout_width ** und ** android: layout_height ** – Vaikesh

Antwort

0

Set Layout-Parameter für Wurzelelement.

int width = this.Resources.DisplayMetrics.WidthPixels; 
int height = this.Resources.DisplayMetrics.HeightPixels 
rootLayout.setLayoutParams (new LinearLayout.LayoutParams (width, height)); 
+0

Für root-Element gab es immer noch ein Problem, aber ich habe ein zweites Layout im root-Element erstellt und funktioniert dann gut:). Vielen Dank! – Shagohad

+0

Lösung sollte für Xamarin sein und Sie haben Java-Code –

+0

gegeben Was ist RootLayout? Tritt dieser Code auch in OnResume() auf? – dev1998

-1
public override void OnActivityCreated(Bundle savedInstanceState) 
    { 
     this.Dialog.Window.RequestFeature(WindowFeatures.NoTitle); 
     this.Dialog.Window.SetGravity(GravityFlags.Center); 
     base.OnActivityCreated(savedInstanceState); 
     int Width = (Resources.DisplayMetrics.WidthPixels) - 150; 
     int Height = (Resources.DisplayMetrics.HeightPixels) - 70; 
     this.Dialog.Window.Attributes.Width = Width; 
     this.Dialog.Window.Attributes.Height = Height; 
    } 
+0

Fügen Sie nicht nur Koeffizient hinzu. fügen Sie eine Erklärung hinzu, was Sie getan haben und warum – Jens