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.

  • GetSupportFragmentManager () no está definido
  • ¿Cómo se muestra un DialogFragment de ancho completo?
  • VideoView dentro de DialogFragment
  • Android AlertDialog con DialogFragment: no cierre el cuadro de diálogo aunque se haga clic en Aceptar
  • Acción ActionBar en DialogFragment
  • DialogFragment anidado múltiple de Android
  • Android - después del cambio de orrientación cambia el fragmento objetivo en el fragmento de diálogo
  • DialogFragment pérdida de memoria
  • Mostrar ConstraintLayout en un DialogFragment
  • OnActivityResult en el fragmento de diálogo
  • Cambio de orientación: IllegalStateException cuando DialogFragment es visible
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.