Quando fazemos...
inflater.inflate(R.layout.list_item, parent, false);
... estamos dizendo:
"Transforme o XML list_item numa View e use o parent
como referência para propriedades como layout_width="match_parent"
que estiverem na primeira tag daquele XML. Porém, não quero que essa View criada seja adicionada como filha de parent
."
Quando estamos num adapter e fazemos esse inflate para cada linha não queremos que a linha seja adicionada direto ao parent
pois quem faz esse trabalho é o próprio adapter, quando retornamos no getView essa View inflada.
Se no momento do inflate passarmos true
, a View criada já será adicionada como filha do parent
e, quando o adapter pegar essa View e tentar adicionar novamente ao mesmo parent
termos um erro do tipo: "A View já tem um pai".
Passar true
no momento do inflate faz sentido quando estamos construindo um layout de forma programática, mas combinando (ou reaproveitando) layouts já escritos em XML.