2010-09-21 4 views
1

Il s'agit d'une question de développement Android.
Si j'ai d'abord défini l'affichage de contenu sur ma mise en page xml à l'aide de setContentView(R.layout.main); et que vous avez ajouté une autre vue de contenu à l'aide de addContentView(layout, params), les vues de contenu se chevauchent. Je veux que la deuxième vue de contenu se positionne directement sous la première. Est-ce possible ou dois-je combiner le XML et les mises en page créées par programme d'une manière ou d'une autre? Les deux dispositions sont linéaires.Mise en page les unes au-dessus des autres

Merci à l'avance

Répondre

5

Mettre les deux Layouts l'intérieur d'un LinearLayout avec une orientation verticale. c'est tout.

Edit:

ce que je veux dire est que vous devez créer une mise en page 3 fichiers xml.

  1. Main.xml
  2. layout1.xml -> votre première mise en page
  3. layout2.xml -> votre deuxième mise en page

votre fichier de mise en page principale shoul comme ceci:

<LinearLayout android:orientation="vertical"> 
<include android:id="+id/lay1" android:layout="@layout/layout1"/> 
<include android:id="+id/lay2" android:layout="@layout/layout2"/> 
</LinearLayout> 

maintenant, votre principale la mise en page à votre setContentView(R.layout.main)

+0

désolé de vous déranger, mais comment puis-je convertir une mise en page xml à un LinearLayout alors? –

+0

@Mountain King: vous devez utiliser la balise 'include'. J'ai fait une modification dans mon message. check-out. – Praveen

1

Merci les gars. J'apprécie les commentaires.

Cela n'a pas fonctionné pour que l'orientation soit verticale sur la mise en page parent (CoordinatorLayout). Ce qui a fonctionné était cependant de mettre les deux éléments dans un LinearLayout avec l'orientation verticale. Un commentaire ci-dessus dit que je devrais faire une première mise en page d'une appbarlayout: Oui, j'ai changé cela en arrière. Je l'avais changé en LinearLayout comme l'une de mes tentatives pour que les objets cessent de se peindre les uns sur les autres.

Je ne suis pas sûr que c'était la bonne façon de résoudre ce problème, mais cela a fonctionné. Je vais passer à autre chose. Merci encore.

0

Pour placer une mise en page au-dessus de l'autre (un haut l'autre sous), ce que je l'ai fait:

<?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 


<RelativeLayout 
    android:id="@+id/topLayout" 
    android:layout_width="match_parent" 
    android:layout_height="300dp" 
    android:layout_alignParentTop="true" 
    android:background="@color/colorAccent"> 

    <TextView 
     android:id="@+id/textView2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="126dp" 
     android:text="Existing Client" 
     android:textColor="@android:color/white" 
     android:textSize="20sp" 
     android:textStyle="bold" /> 
</RelativeLayout> 

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="300dp" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:background="@color/colorPrimary"> 

    <TextView 
     android:id="@+id/textView7" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="138dp" 
     android:text="New Client" 
     android:textColor="@android:color/white" 
     android:textSize="20sp" 
     android:textStyle="bold" /> 

</RelativeLayout> 

Et le résultat:

enter image description here

Mon intention était d'utiliser les mises en page comme des boutons qui remplissent une certaine largeur de l'écran.

Questions connexes