DialogFragment establecer altura de diálogo

Acabo de utilizar creado por el primer diálogo utilizando DialogFragment. Todo funciona muy bien, pero no puedo obtener el cuadro de diálogo para envolver su diseño. Mi diseño tiene la altura de todos los elementos para wrap_content .

En MyFragmentDialog no puedo incluso encontrar un método que implicaría que se puede utilizar para establecer la altura del FragmentDialog . ¿Qué me estoy perdiendo? ¿Cómo puedo hacer que un DialogFragment encaje su contenido?

El método onCreateView :

  @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Set title for this dialog getDialog().setTitle("Backup & Restore"); getDialog().setCancelable(true); View v = inflater.inflate(R.layout.backup_restore, container, false); TextView msg = (TextView) v.findViewById(R.id.br_label_message); msg.setText("Backups are placed in the Downloads Directory:\n" + BACKUP_PATH.getAbsolutePath()); // TextView files_label = (TextView) v.findViewById(R.id.label_restore); Spinner files = (Spinner) v.findViewById(R.id.br_restore_file); if (BACKUP_PATH.exists()) { FilenameFilter filter = new FilenameFilter() { public boolean accept(File dir, String filename) { File sel = new File(dir, filename); return filename.contains(FTYPE) || sel.isDirectory(); } }; mFileList = BACKUP_PATH.list(filter); } else { mFileList = new String[0]; } ArrayAdapter<CharSequence> adapter = new ArrayAdapter<CharSequence>(getActivity(), android.R.layout.simple_spinner_item, mFileList); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); files.setAdapter(adapter); files.setOnItemSelectedListener(this); Button backup = (Button) v.findViewById(R.id.br_backup_btn); Button restore = (Button) v.findViewById(R.id.br_restore_btn); Button cancel = (Button) v.findViewById(R.id.br_cancel_btn); backup.setOnClickListener(this); restore.setOnClickListener(this); cancel.setOnClickListener(this); return v; } 

Este es el diseño:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:padding="8dp" > <TextView android:id="@+id/br_label_message" android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingBottom="8dp" android:text="" android:textSize="14sp" /> <TableLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <TableRow android:id="@+id/br_tableRow1" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:id="@+id/br_label_restore" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingRight="8dp" android:text="Restore file" android:textSize="14sp" /> <Spinner android:id="@+id/br_restore_file" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </TableRow> </TableLayout> <TableLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <TableRow> <Button android:id="@+id/br_restore_btn" android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight=".5" android:text="Restore" android:textSize="14sp" /> <Button android:id="@+id/br_backup_btn" android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight=".5" android:text="Backup" android:textSize="14sp" /> </TableRow> </TableLayout> <Button android:id="@+id/br_cancel_btn" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Cancel" android:textSize="14sp" /> </LinearLayout> 

Gracias,

Resulta ser un problema con LinearLayout pesar de establecer una altura en él, en DialogFragment parece estar tomando más espacio de lo que quiero. Cambié el diseño para ser un RelativeLayout el Dialog del contenido parece reajustar para caber el contenido.

Usted puede hacer que funcione con todo tipo de diseño en la adición del tamaño de la disposición en el onResume de su dialogFragment:

  @Override public void onResume() { super.onResume(); Window window = getDialog().getWindow(); window.setLayout(300, 300); window.setGravity(Gravity.CENTER); } 

Tomé un salto en el cuadro de diálogo api por lo que no estoy seguro, pero puede intentar llamar a getWindow en el diálogo y luego llamar a setLayout (width, height)

 getDialog().getWindow().setLayout(300,300); 

No veo la parte superior de su etiqueta LinearLayout, pero he visto casos en los que todo lo que se necesitaba era el

 android:orientation="vertical" 

XML. Puede causar dolor de cabeza, pero afortunadamente es fácil de arreglar.

  • Android - ListFragment dentro DialogFragment (AlertDialog): Fragmento no tiene una vista
  • Línea negra extraña sobre DialogFragment AlertDialog
  • Pantalla completa DialogFragment (sobre ActionBar) en Android
  • Callback de DialogFragment en el cambio de orientación
  • Cómo mostrar DialogFragment de Fragment en actionBar android
  • Ejemplo simple de DialogFragment - código de ejemplo no funciona para mí
  • Eliminar fondo blanco en dialogfragment
  • ¿Debe ser una clase DialogFragment interna estática o no?
  • Recuperar valor de EditText en DialogFragment
  • Cómo crear un nuevo cuadro de diálogo "circle" datepicker android
  • ¿Debemos usar setTargetFragment ()? Pensé que los fragmentos no deberían comunicarse entre sí
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.