8

Si he llamado un diseño bottom.xml,¿Cómo incrustar un diseño dentro de otro en mi caso?

bottom.xml: (contienen simplemente una vista de Vista de Texto y editar texto)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:orientation="vertical" 
    > 
     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_horizontal" 
      android:gravity="center_horizontal" 
      android:text="@string/username" 

     /> 

     <EditText 
      android:id="@+id/name" 

      android:layout_width="120dip" 
      android:layout_height="50dip" 
      android:layout_gravity="center_horizontal"  
     /> 
</LinearLayout> 

¿Hay alguna manera de insertar anterior bottom.xml diseño dentro de otros diseños en lugar de escribir repetidamente Cómo utilizar el mismo código en varios archivos de diseño (cuando otros diseños tienen una parte que contiene el mismo diseño que bottom.xml)?

Por ejemplo, si mi admin.xml diseño también contienen parte de la disposición que se ve exactamente igual que bottom.xml, cómo acaba de incrustar el bottom.xml interior admin.xml en lugar de escribir el mismo código nuevamente?

admin.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
    > 
    ... 
    ... 
     <!--How to embed bottom.xml here--> 
    ... 
</LinearLayout> 

Si no hay manera de hacerlo en Android, lo que podría ser la solución ??

---------- ----------- actualización

Como @xevincent sugirió, que puede volver a utilizar el bottom.xml por el uso <include> etiqueta,

¿Pero cómo cambiar la identificación de los elementos dentro del diseño resued?

Por ejemplo, insdie bottom.xml, me gustaría cambiar el id de <editText android:id="@+id/name"> a <editText android:id="@+id/other_name"> cuando vuelva a utilizar el bottom.xml diseño en otra disposición, la forma de cambiar el id?

+0

Posible solución a su "actualización": http://stackoverflow.com/questions/3421864/how-do-i-access -the-views-inside-the-layout-when-i-reuse-it-multiple-times – Haozhun

Respuesta

7

Consulte este documento reusing layouts.

+0

@ xevincent, Cómo cambiar el id de los elementos dentro del diseño resued por ej. bottom.xml, me gustaría cambiar la identificación de editText cuando reutilizo el diseño bottom.xml en otro diseño, ¿cómo cambiar el id? – Leem

+0

No puede cambiar la identificación de los elementos dentro de bottom.xml de la manera xml pero puede hacerlo en Java (vea View.setId (int)). – xevincent

2

anwser de xevincent Sólo upvote. Agregué esta respuesta porque SO recomienda "Citar siempre la parte más relevante de un enlace importante, en caso de que el sitio objetivo no esté disponible o permanezca desconectado permanentemente".

Así que, básicamente, his link explica que debe usar <include />.

<com.android.launcher.Workspace 
    android:id="@+id/workspace" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 

    launcher:defaultScreen="1"> 

    <include android:id="@+id/cell1" layout="@layout/workspace_screen" /> 
    <include android:id="@+id/cell2" layout="@layout/workspace_screen" /> 
    <include android:id="@+id/cell3" layout="@layout/workspace_screen" /> 

</com.android.launcher.Workspace> 

y saber que puede anular los parámetros de Presentación:

<include android:layout_width="fill_parent" layout="@layout/image_holder" /> 
Cuestiones relacionadas