¿Cómo hacer que RelativeLayout funcione con merge e include?

He estado intentando durante unos días hacer que mis diseños sean más eficientes al convertir el uso de varios niveles de anidadosLinearLayouts a unoRelativeLayout y me he encontrado con algunos problemas para los que no he podido encontrar una solución ...

He buscado en el grupo de principiantes de Android y este sitio y no he podido encontrar nada que me ayude a resolver el problema.

Leí en uno de los blogs que puedes combinar diseños con fusión e incluir etiquetas. Entonces, lo que tengo es un archivo de diseño principal con unRelativeLayout elemento raíz Dentro de eso, tengo 5 etiquetas incluidas que hacen referencia a 5 archivos de diseño xml diferentes, cada uno de los cuales tiene un elemento de fusión para la raíz (todos mis archivos de fusión son los mismos, excepto los identificadores en ellos).

Me encuentro con dos problemas, que explicaré después de publicar una versión simplificada de mi código de diseño:

Ejemplo de archivo de diseño principal:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/translucent_gray" >

    <include 
        android:id="@+id/running_gallery_layout_id"
        layout="@layout/running_gallery_layout" />

    <include 
        android:id="@+id/recent_gallery_layout_id" 
        layout="@layout/recent_gallery_layout"
        android:layout_below="@id/running_gallery_layout_id" />

    <include
        android:id="@+id/service_gallery_layout_id"
        layout="@layout/service_gallery_layout"
        android:layout_below="@id/recent_gallery_layout_id" />

    <include
        android:id="@+id/process_gallery_layout_id"
        layout="@layout/process_gallery_layout"
        android:layout_below="@id/service_gallery_layout_id" />

</RelativeLayout>

Ejemplo de archivo de fusión incluido:

<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android">
    <TextView 
        style="@style/TitleText"
        android:id="@+id/service_gallery_title_text_id"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="left"
        android:text="@string/service_title" />

    <Gallery
        android:id="@+id/service_gallery_id"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:layout_below="@id/service_gallery_title_text_id" />

    <TextView 
        style="@style/SubTitleText"
        android:id="@+id/service_gallery_current_text_id"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/service_gallery_title_text_id"
        android:layout_above="@id/service_gallery_id" />
</merge>

Me encuentro con dos problemas:

1) Elandroid:layout_* los atributos parecen ignorarse cuando se usan en la etiqueta de inclusión y todos los diseños combinados se muestran uno encima del otro. Según esta publicación (http://developer.android.com/resources/articles/layout-tricks-reuse.html) "algunaandroid:layout_* El atributo se puede utilizar con el<include /> etiqueta"

2) Como no podía hacer que esto funcionara, decidí intentar agregar unandroid:layout_below atribuir al primeroTextView elemento en cada archivo de diseño de fusión, lo que significa que cada archivo de fusión estaría haciendo referencia a una identificación de otro archivo de diseño de fusión ... En su mayor parte, esto realmente funcionó y mi diseño se ve bien. Sin embargo, recibo un error en uno de losandroid:layout_below atributos que dicen que no puede encontrar la identificación que especifiqué ... He verificado doble y triplemente los identificadores para asegurarme de que fueran correctos. La parte más extraña es que usé elAutoFill función para poner la identificación en el atributo en primer lugar.

Si alguien tiene alguna sugerencia o solución, estaré encantado de probarla. Además, si alguien puede pensar en una forma de tener solo un archivo de diseño xml de combinación en lugar de 5, sería muy apreciado. No pude encontrar una manera de hacerlo porque necesito tener acceso a cada elemento en los archivos de diseño de combinación en tiempo de ejecución ...

Respuestas a la pregunta(7)

Su respuesta a la pregunta