2011-09-30 12 views
8

Qual è stato il motivo dell'introduzione di match_parent e deprecating fill_parent poiché entrambi significano la stessa cosa. questo cambiamento non sarà un ostacolo alla retrocompatibilità?Android fill_parent to match_parent

+0

Mi sono sempre chiesto anche questo. In realtà penso che 'fill_parent' rappresenti il ​​significato meglio di' match_parent'. – inazaruk

risposta

10

Utilizzare match_parent invece di fill_parent NON renderà l'APK generato invulnerabile nelle versioni precedenti perché nell'APK generato l'occorrenza di match_parent e fill_parent verrà sostituita con il relativo valore costante corrispondente, che è lo stesso in questo caso (entrambi sono -1), quindi lo stesso APK può essere eseguito anche su versioni precedenti della piattaforma Android.

Ma durante la compilazione del codice se si passa alla versione precedente (versione 7 o inferiore), si otterrà un errore di compilazione (poiché match_parent non è definito nella versione 7 o inferiore).

4

Android Doc dice:

FILL_PARENT (MATCH_PARENT rinominato in API Livello 8 e superiori), il che significa che la vista vuole essere grande come suo genitore (meno imbottitura)

fill_parent: The la vista dovrebbe essere grande quanto il suo genitore (meno padding). Questa costante è obsoleta a partire dal livello API 8 e viene sostituita da da match_parent.

Quindi sono uguali come i loro valori sono entrambi -1. Ma se ti preoccupi della compatibilità con le versioni precedenti, puoi andare qui: platfrom version

questo ti dà un'idea migliore su quando dovresti cambiare tutto il tuo fill_parent in match_parent. al momento, sembra che il 50% di ppl stia utilizzando l'API di livello 8 o superiore. Quindi tocca a te cambiarlo.

+0

Grazie per la risposta, ma la mia domanda era perché questo cambiamento è stato fatto e non come andare d'accordo con esso. – 1O1

+0

Mi dispiace, l'unica ragione per cui riesco a capire è che FILL_PARENT può significare riempire la vista figlio con la sua vista genitore alla stessa dimensione e posizione (x, y). Ma il vero significato di FILL_PARENT è la dimensione (larghezza o altezza) è uguale a quella del genitore, non la posizione (x, y), quindi hanno deciso di passare a MATCH_PARENT per un chiarimento su questo. Ma io non sono colui che ha cambiato il nome di questo, basta prendere una ragionevole ipotesi su di esso. :) –

Problemi correlati