2013-03-01 16 views
15

Sto facendo un Popup con 3 Spinners e un EditText. Dopo aver letto molti blog e articoli non riesco a decidere quale sia l'opzione migliore, PopupWindow o DialogFragment.Devo usare PopupWindow o DialogFragment per accettare l'input?

I criteri sarebbero:

  1. Compatibilità con diverse versioni di Android
  2. prestazioni

Se c'è un modo migliore per farlo io sono aperto a cambiare la prospettiva .

Grazie mille.

DialogFragment:

  • Pro:
  • Contro:

PopupWindow:

  • Pro:
  • Contro:

EDIT: CONCLUSIONE

DialogFragment permette di utilizzare le funzioni più complesse. Un'altra cosa importante è che è più adatto ai tablet in quanto consente all'utente di aprire più di un frammento alla volta. I frammenti sono una soluzione più dinamica e sono lo standard per le nuove versioni di Android.

PopupWindow è più semplice ed è molto utile per domande semplici per l'utente.

+0

quali decisioni hai ottenuto per restringere a uno di questi (conosci qualche pro o contro?). Inoltre, considera la possibilità di pubblicare un'immagine di ciò che desideri. Questi cambiamenti renderebbero questo un post all-star. – Phil

+0

Grazie Phil, cercherò di migliorare la domanda! – eyyo

risposta

29

La libreria di supporto può darti un DialogFragment che è compatibile con le vecchie versioni di Android. Vai avanti con la finestra di dialogo dei frammenti perché ciò che stai chiedendo è piuttosto specifico (3 spinners e un edittext. Fai clic con il pulsante destro del mouse sul tuo progetto e premi "Strumenti Android" -> "Aggiungi libreria di supporto" Assicurati di usare la finestra di dialogo importare

import android.support.v4.app.DialogFragment; 

Altrimenti si finirà per utilizzando la finestra di dialogo senza il supporto:. P avrete una maggiore flessibilità con la finestra di frammento e il potere di usare la vista si vede in forma (anche un layout realizzato da soli) senza molto sforzo.

dialogo Frammento

Pro:

  • in grado di aggiungere qualsiasi vista
  • Facile da modificare
  • può essere adattato alle compresse o cellulari in orizzontale o verticale semplicemente modificando il layout
  • Puoi dedicare una classe completamente nuova solo per modificarla a modo tuo

Contro:

  • Cosumes più memoria più complessa è la sua opinione
  • Più difficile da codice

un'altra finestra:

Pro:

  • più semplice
  • Più facile da codificare
  • E 'più standard in modo sarà più difficile per l'utente di essere confuso con esso

Contro:

  • più semplice, il che significa meno controllo su di esso
  • limitata per alcuni modelli

Questi sono solo dalla cima della mia mente e dalla mia esperienza, ma si dovrebbe leggere la documentazione

http://developer.android.com/reference/android/widget/PopupWindow.html

http://developer.android.com/reference/android/app/DialogFragment.html

+0

Bella risposta Dante! – eyyo

+0

grazie! se questo risponde alla tua domanda, potresti accettarlo? – Dante

+0

Grazie, Dante! Buona visione! – eyyo

1

Se avete bisogno EditText nella finestra e si vuole lasciare che l'utente sia in grado di longpress in essa e pasta (comportamento normale di una modifica-text) allora non usare PopupWindow , L'ho trovato nel modo sbagliato:

Un bel Big Contro in popupwindow è che premere a lungo sul testo di modifica non porterà il menu di scelta rapida predefinito (copia/incolla/seleziona tutto, ...). in alcuni dispositivi questo causa effettivamente un arresto anomalo dell'app. vedi questo https://code.google.com/p/android/issues/detail?id=62508