2016-04-22 13 views
2

In meiner Anwendung muss ich ein DialogFragment wie folgt erstellen (Im Bild angezeigt - Bottom 1/4 Screen). Ich habe Vollbild DialogFragment durchDialogFragment: Wie setze ich Placement und Dimensionen?

achived
@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     int style = DialogFragment.STYLE_NO_TITLE; 
     int theme = android.R.style.Theme_Holo; 
     setStyle(style, theme); 
    } 

Aber ich bin nicht sicher, wie die Höhe eingestellt von DialogBox und halten Sie sie am unteren Rand des Bildschirms?

enter image description here

+0

Sie die Breite/Höhe der LayoutParams Ihrer RootView – Blackbelt

+0

Sie können für gleiches –

+0

@BhaveshDesai unteres Blatt unteres Blatt ändern könnte verwenden können, nur Menü enthalten ?? – Alex

Antwort

0

Wenn Sie das Fragment erstellen, sind Sie die Möglichkeit geben, zu erklären, wo Sie das Fragment-Layout hinzugefügt werden soll.

add(R.layout....) 

erstellen leeres Layout in dem Aktivitäten-Layout, das die definierte Größe dieses Feldes ist und dann einfach die Methode

add(R.layout.theNewlyCreatedLayoutWiththeRightSizeAndPosition) 
zu diesem Layout Add ändern
0

Sie können onCreateDialog (Bundle savedInstance) -Methode Erstellen Sie den Dialog und legen Sie die Position fest. zB -

@Override 
public Dialog onCreateDialog(Bundle savedInstanceState) { 

    // Make the dialog view ready 
    //LayoutInflater layoutInflater = LayoutInflater.from(getActivity()); 
    //View v = layoutInflater.inflate(R.layout.dialog,null); 

    // Create the dialog 
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
    // Set the view in dialog 
    //builder.setView(v); 
    Dialog dialog = builder.create(); 

    // Set the dialog position 
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    WindowManager.LayoutParams wmlp = dialog.getWindow().getAttributes(); 

    wmlp.gravity = Gravity.BOTTOM| Gravity.CENTER; 
    wmlp.x = 100; //x position 
    wmlp.y = 100; //y position 


    return dialog; 
} 
0

Sie Bottomsheet für Ihr Problem

In Bottomsheet Sie auch Fragment und Views

Bottomsheet Beispiele sind here

0

gut Sie erreichen könnte, dass einfach überschreiben OnCreateView verwenden können und Setzen Sie dann die Parameter manuell, wie Sie möchten.

Hier ist ein Beispiel

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle bundle) { 

    Window window = getDialog().getWindow(); 

    // set gravity 
    window.setGravity(Gravity.BOTTOM|Gravity.CENTER); 

    // then set the values to where you want to position it 
    WindowManager.LayoutParams params = window.getAttributes(); 
    params.x = 300; 
    params.y = 100; 
    window.setAttributes(params); 
}