Tengo un montón de control repetido en mi xml
(un Button
por ejemplo). ¿Hay alguna posibilidad de escribir el Button
una vez en un xml
y luego importarlo en todo el diseño que lo necesito?importa xml a otro xml
Respuesta
Puede utilizar
<include layout="@layout/commonlayout" android:id="@+id/id" />
commonlayout.xml
deberían definirse en res/layout
donde se puede añadir las partes repetidas.
funciona. muchas gracias – Blackbelt
Respuesta breve pero increíble. –
Como Labeeb P dijo con razón, funciona. Sólo quiero añadir que también se puede ignorar los parámetros demasiado:
<include
layout="@layout/commonlayout"
android:id="@+id/id"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginLeft="2sp"
android:layout_marginRight="2sp"
/>
Además de esas grandes respuestas, también puede evitar la duplicación de código mediante el uso de la etiqueta <merge>
, así:
<merge xmlns:android="http://schemas.android.com/apk/res/android">
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/add"/>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/delete"/>
</merge>
El <merge>
parte se quita cuando lo incluye en otro xml. Esto podría ayudar a incluir más de un solo Button
a la vez. Ver el official documentation.
Puede utilizar la etiqueta predeterminada include
XML para incluir una disposición externa:
<include layout="@layout/somelayout" />
Esta disposición debe tener un exterior ViewGroup
que encapsula el contenido o una etiqueta merge
para evitar tener que utilizar un diseño innecesaria:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/hello_world" />
</LinearLayout>
<!-- OR -->
<merge xmlns:android="http://schemas.android.com/apk/res/android">
<TextView android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/hello_world" />
</merge>
Además, si usted necesita una manera mejor incluir piezas de diseño que actúa como un contenedor (una costumbre ViewGroup
), se puede utilizar este custom ViewGroup. Tenga en cuenta que esto no importa un XML en otro archivo XML, infla el contenido del diseño externo y lo reemplaza en la vista. Es similar a ViewStub
, como "ViewGroupStub".
Este lib actúa como si el ViewStub
podría ser utilizado de la siguiente manera (! nota que este ejemplo no funciona ViewStub
no es una subclase ViewGroup
!):
<ViewStub layout="@layout/somecontainerlayout"
inflate_inside="@+id/somecontainerid">
<TextView android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/hello_world" />
</ViewStub>
- 1. XML IDREF ¿otro documento XML?
- 2. ¿A XML le importa el orden de los elementos?
- 3. conversión de archivo XML en otro archivo XML mediante XSLT
- 4. XML jerárquico a XML mediante XSLT plana
- 5. Copie de un archivo xml a otro - powershell
- 6. NSDictionary a XML
- 7. Cómo incrustar xml en xml
- 8. almacenar xml dentro de xml
- 9. Flex cadena a XML
- 10. Asignación XML-a-SQL
- 11. Convertir XML a psobject
- 12. objeto Axis2 a xml
- 13. serializar clase a XML?
- 14. XML-documentation for a namespace
- 15. Cómo derivar DTD (u otro formato de especificación XML) de muestras de archivos XML
- 16. ¿Puedo tener un esquema XML (XSD) que incluya otro XML-Schema?
- 17. XML: para adjuntar documento xml en el nodo de otro documento
- 18. ¿Cómo insertar xml en un nodo en otro xml usando XQuery?
- 19. svn log --xml invalid xml
- 20. xml pull parser assets xml
- 21. ¿Cómo crear XML a partir de XML utilizando XSL?
- 22. ¿Agregar un documento xml a un nodo xml en C#?
- 23. Generación de instancias XML a partir del esquema XML (xsd)
- 24. referencia a una cadena XML en una matriz XML (Android)
- 25. Rendimiento de Scala XML frente a Java XML
- 26. XML de mapeo XML mediante XSLT
- 27. Aplicar XSL a XML externo
- 28. rendimiento de linq a xml
- 29. Convertir XML a formato JSON
- 30. C# serializar decimal a xml
que se enfrentaron a este problema cuando estaba va a hacer una barra superior que se parece a la barra de navegación de iOS. –