0

Première voie:Effet de Muliple @ + id vs simple @ + id dans la compilation du même fichier de mise en page

<Button 
    android:id="@+id/btnLogin" 
    style="@style/btnStyle" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/btnFacebook" 
    android:layout_alignRight="@+id/btnFacebook" 
    android:layout_below="@id/etPassword" 
    android:layout_centerInParent="true" 
    android:onClick="goHome" 
    android:text="Login"/> 

<Button 
    android:id="@+id/btnFacebook" 
    style="@style/btnFacebook" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@id/textOR" 
    android:layout_marginTop="10dp" 
    android:onClick="facebookSignUp" 
    android:text="  Signup with Facebook  "/> 


<Button 
    android:id="@+id/btnGooglePlus" 
    style="@style/btnGoogle" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/btnFacebook" 
    android:layout_alignRight="@+id/btnFacebook" 
    android:layout_below="@id/btnFacebook"/> 

Deuxième voie:

<Button 
    android:id="@+id/btnLogin" 
    style="@style/btnStyle" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/btnFacebook" 
    android:layout_alignRight="@id/btnFacebook" 
    android:layout_below="@id/etPassword" 
    android:layout_centerInParent="true" 
    android:onClick="goHome" 
    android:text="Login"/> 

<Button 
    android:id="@id/btnFacebook" 
    style="@style/btnFacebook" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@id/textOR" 
    android:layout_marginTop="10dp" 
    android:onClick="facebookSignUp" 
    android:text="  Signup with Facebook  "/> 


<Button 
    android:id="@+id/btnGooglePlus" 
    style="@style/btnGoogle" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@id/btnFacebook" 
    android:layout_alignRight="@id/btnFacebook" 
    android:layout_below="@id/btnFacebook"/> 

troisième voie:

<Button 
    android:id="@+id/btnLogin" 
    style="@style/btnStyle" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@id/btnFacebook" 
    android:layout_alignRight="@id/btnFacebook" 
    android:layout_below="@id/etPassword" 
    android:layout_centerInParent="true" 
    android:onClick="goHome" 
    android:text="Login"/> 

<Button 
    android:id="@+id/btnFacebook" 
    style="@style/btnFacebook" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@id/textOR" 
    android:layout_marginTop="10dp" 
    android:onClick="facebookSignUp" 
    android:text="  Signup with Facebook  "/> 


<Button 
    android:id="@+id/btnGooglePlus" 
    style="@style/btnGoogle" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@id/btnFacebook" 
    android:layout_alignRight="@id/btnFacebook" 
    android:layout_below="@id/btnFacebook"/> 

Deux questions:

  1. sortie de trois façons de initialisant

btnFacebook

est le même. Comment?

  1. Étant donné que la sortie est identique, le résultat de la compilation XML Parser est le même. Alors, comment exactement l'initialisation des ressources est-elle faite et comment sont-ils attachés à ViewTree?

Toute documentation officielle avec explication est appréciée. Merci à l'avance :)

Répondre

0

from here

pour ne faire aucune différence.

Comme si la vue était la même mais que la troisième ne fonctionnerait pas car btnFacebook n'est pas déclaré avant btnLogin. Donc l'erreur de compilation sera montrée. Troisième façon fonctionnera après un léger changement, voir aller that lien. Pour plus info

+0

Oui, vous avez raison troisième cas donne une erreur de compilation. J'ai traversé ce lien, mais ce que je ne comprends pas, c'est comment fonctionne la première méthode. Parce que quand je fais quelque chose dans le fichier java comme R.id. La suggestion de saisie semi-automatique me donne plus d'une suggestion> btnFacebook, ce qui signifie qu'il y a plus d'une référence créée comme btnFacebook. Comment compilera-t-il et résoudra-t-il à l'exécution. Cela n'occupera-t-il pas plus de mémoire inutile? Merci à l'avance :) –

+0

J'ai vérifié votre premier xml dans le studio Android 2.1 mais ne peut pas voir plusieurs btnFacebook. – Exigente05

+0

Même si vous utilisez le même identifiant dans une mise en page différente, il se peut qu'il ne contienne pas d'option multiple, mais que l'ID soit dans la vue actuelle. Réf: - http://stackoverflow.com/questions/17825356/how-does-multiple-component-with-same-id-work-in-android – Exigente05