J'essaie depuis quelques jours de faire mes mises en page plus efficace par la conversion de l'utilisation de plusieurs niveaux d'imbrication LinearLayouts
d'un RelativeLayout
et avons rencontré quelques problèmes que je n'ai pas été en mesure de trouver une solution de contournement pour...
J'ai cherché sur le Android les débutants du groupe et de ce site et n'ont pas été en mesure de trouver tout ce qui pourrait m'aider à résoudre le problème.
J'ai lu sur l'un des blogs que vous pouvez combiner la mise en page de fusion et comprennent des balises. Donc ce que j'ai est un fichier de mise en page avec un RelativeLayout
de l'élément racine. À l'intérieur de ce que j'ai 5 comprennent des balises de référence 5 xml différents fichiers de mise en page qui ont chacune une fusion de l'élément de la racine (tous mes fusionner des fichiers sont les mêmes, sauf pour les id).
Je suis en cours d'exécution en deux problèmes, je vais vous expliquer après la publication d'une version simplifiée de ma mise en page de code:
L'Échantillon Principal Fichier De Mise En Page:
<?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>
L'échantillon comprenait fichier de fusion:
<?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>
Je suis en cours d'exécution en deux problèmes:
1) L' android:layout_*
attributs semblent être ignoré lorsqu'il est utilisé dans la balise include et tous de la fusion de mises en page sont affichés les uns sur les autres. Selon ce post (http://developer.android.com/resources/articles/layout-tricks-reuse.html) "tout android:layout_*
attribut peut être utilisé avec l' <include />
tag"
2) étant donné que je ne pouvais pas obtenir ce travail, j'ai décidé d'essayer d'ajouter un android:layout_below
de l'attribut de la première TextView
élément dans chaque fusion, fichier de mise en page, ce qui signifie que chaque fichier de fusion serait une référence à un id d'une autre fusion fichier de mise en page... Pour la plupart, ce réellement travaillé, et ma mise en page a l'air bien. Cependant, j'ai une erreur sur l'une des android:layout_below
attributs en disant qu'il ne peut pas trouver l'id que j'ai précisé... j'ai le double et le triple vérifié les identifiants pour s'assurer qu'ils sont corrects. Le plus étrange, c'est que j'ai utilisé l' AutoFill
fonction pour mettre l'id de l'attribut dans la première place.
Si quelqu'un a des suggestions ou solutions je serai plus qu'heureux de les essayer. Aussi, si quelqu'un peut penser à un moyen pour moi d'avoir juste une fusion xml fichier de mise en page au lieu de 5, ce serait grandement apprécié. Je ne pouvais pas trouver un moyen de le faire parce que j'ai besoin d'avoir accès à chaque élément de la fusion des fichiers de mise à exécution...
Merci à l'avance!