多个@+id 与单个@+id 在编译同一布局文件时的效果
Effect of muliple @+id vs single @+id in compilation of same layout file
第一种方式:
<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"/>
第二种方式:
<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"/>
第三种方式:
<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"/>
两个问题:
- 三种初始化方式的输出
btnFacebook
相同。怎么样?
- 因为输出相同,所以XML解析器编译结果相同。那么资源的初始化究竟是如何完成的以及它们是如何附加到 ViewTree 的?
感谢任何带有解释的官方文档。
提前致谢:)
第一种方式:
<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"/>
第二种方式:
<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"/>
第三种方式:
<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"/>
两个问题:
- 三种初始化方式的输出
btnFacebook
相同。怎么样?
- 因为输出相同,所以XML解析器编译结果相同。那么资源的初始化究竟是如何完成的以及它们是如何附加到 ViewTree 的?
感谢任何带有解释的官方文档。 提前致谢:)