Acabo de utilizar creado por el primer cuadro de Diálogo utilizando DialogFragment.
Todo funciona bien, excepto que no puede obtener el cuadro de Diálogo para concluir la presentación.
Mi diseño tiene la altura de todos los elementos para wrap_content.

En MyFragmentDialog ni siquiera puedo encontrar un método que implica que puede ser utilizado para establecer la altura de la FragmentDialog. Lo que me estoy perdiendo? ¿Cómo puedo hacer una DialogFragment ajuste es el contenido?

La DialogFrament‘s onCreateView método:

    @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,

OriginalEl autor Ali | 2012-01-22

4 Comentarios

  1. 29

    Resulta ser un problema con LinearLayout a pesar de la creación de una altura, en DialogFragment parece estar tomando más espacio que yo quiero. He cambiado el diseño para ser un RelativeLayout el contenido Dialog parece cambiar de tamaño para que se ajuste al contenido.

    hey u puede publicar la solución? hizo u ajustar la altura relativa de diseño o wrap_content?
    ancho de match_parent, la altura de wrap_content. Déjeme saber si usted todavía necesita de mí para publicar la solución.
    Gracias Ali.hice un trabajo de alrededor.me envolvió el diseño existente con un Pariente de Diseño, cuya anchura y la altura son match_parent.Seguro,u puede publicar la respuesta que será útil para los demás,si es necesario.
    No funciona para mí @Ali
    Si utiliza Relativa Diseño no puede usar el alinee la parte inferior de los padres, alinear padre superior, etc. Todos los elementos deben estar por encima o por debajo de otros elementos. Tan pronto como alinear a los padres a la parte superior o inferior de crecer para llenar la pantalla

    OriginalEl autor Ali

  2. 6

    Que puede hacer el trabajo con todo tipo de diseño en añadir el tamaño de la disposición en la onResume de su dialogFragment :

      @Override
    public void onResume()
    {
    super.onResume();
    Window window = getDialog().getWindow();
    window.setLayout(300, 300);
    window.setGravity(Gravity.CENTER);
    }
    Fuera de la 100s de las soluciones que he encontrado en por LO que para este estúpido problema, este es el único que funcionó y me mantuvo cuerdo un día más.
    trabajó para mí 🙂
    por favor refiérase a esta pregunta – stackoverflow.com/questions/45494644/…

    OriginalEl autor GuillaumeAgis

  3. 4

    Me dio un salto en el cuadro de Diálogo de la api así que seguramente no estoy seguro, pero podría intentar llamar getWindow en el cuadro de diálogo y, a continuación, llamar a setLayout(anchura, altura)

    getDialog().getWindow().setLayout(300,300);
    Gracias Bram, pero resulta ser un problema con LinearLayout me cambié a un RelativeLayout y el contenido Dialog parece de tamaño para ajustarse a su contenido.

    OriginalEl autor Bram

  4. 0

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

    android:orientation="vertical"

    Atributo XML. Puede causar un dolor de cabeza pero no es, afortunadamente, es fácil de solucionar.

    OriginalEl autor user1205577

Dejar respuesta

Please enter your comment!
Please enter your name here