2013-04-30 2 views
1

J'ai la disposition que je veux organiser. Voici le code de ce: (partiel)Comment forcer la disposition androïde pour afficher deux vues

<RelativeLayout 
    android:id="@+id/RelativeLayout1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 

    <ScrollView 
     android:id="@+id/scrollView1" 
     android:layout_width="fill_parent" 
     android:layout_height="match_parent" 
     android:layout_alignParentTop="true" > 

     <TableLayout 
      android:id="@+id/list" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="#d9d9d9" 
      android:clickable="true" 
      android:stretchColumns="*" > 
     </TableLayout> 
    </ScrollView> 

    <LinearLayout 
     android:id="@+id/LinearLayout1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_below="@+id/scrollView1" 
     android:background="@android:color/background_light" 
     android:orientation="vertical" > 

     <TextView 
      android:id="@+id/showingXoutOfY" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_horizontal" 
      android:text="@string/XOutOfY" 
      android:textColor="@color/blue" /> 

     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_horizontal" 
      android:text="@string/copyright" 
      android:textColor="@android:color/black" /> 
    </LinearLayout> 
</RelativeLayout> 

Je veux que le ScrollView pour remplir l'écran, mais je veux à laisser un espace pour le LinearLayout avec le TextViews dans le fond. Comme vous pouvez le voir j'ai essayé de les emballer à l'intérieur d'un RelativeLayout et j'ai aligné le ScrollView vers le haut et le LinearLayout vers le bas, mais il montre toujours seulement le ScrollView. Le TableLayout qui est imbriqué dans le ScrollView est rempli dynamiquement.

+0

Vous voulez donc afficher scrollview au-dessus de TextView à l'intérieur de LinearLayout. N'est-ce pas? –

+0

@ shree202 Oui. Le conteneur n'a pas d'importance. Peut-être que ce sera plus clair si je dis ce que je veux faire. TableLayout est une liste d'éléments. le TextView contient des informations sur combien d'éléments il y a dans la liste –

+0

essayez de définir la hauteur de scrollview comme contenu d'habillage –

Répondre

4
<RelativeLayout 
android:id="@+id/RelativeLayout1" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:orientation="vertical" > 

<ScrollView 
    android:id="@+id/scrollView1" 
    android:layout_width="fill_parent" 
    android:layout_height="match_parent" 

android: layout_above = "@ + id/LinearLayout1"

android:layout_alignParentTop="true" > 

    <TableLayout 
     android:id="@+id/list" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="#d9d9d9" 
     android:clickable="true" 
     android:stretchColumns="*" > 
    </TableLayout> 
</ScrollView> 

<LinearLayout 
    android:id="@+id/LinearLayout1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:background="@android:color/background_light" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/showingXoutOfY" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:text="@string/XOutOfY" 
     android:textColor="@color/blue" /> 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:text="@string/copyright" 
     android:textColor="@android:color/black" /> 
</LinearLayout> 

Vérifiez la ligne en gras, que paramètre dit qu'il devrait toujours être au-dessus de la vue spécifiée

+0

L'a fait, et l'eclipse dit: Exception levée pendant le rendu: Les dépendances circulaires ne peuvent pas exister dans RelativeLayout –

+1

J'ai édité la réponse, c'était en raison de linearlayout disant qu'il devrait être en dessous de la vue défilement et scrollview disant qu'il devrait être au-dessus de linearlayout. Suppression linearlayout disant ci-dessous @scrollview – Hardik4560

+0

Il a fait l'affaire. Je ne peux pas marquer la réponse comme acceptée parce que je ne sais pas laquelle d'entre vous a été la première, donc j'ai marqué le commentaire comme utile ... –

0

Vous pouvez utiliser l'attribut marginBottom pour ScrollView. Ou utiliser LinearLayout comme parent et le poids de mise en page attribut pour étirer scrollview

1

Essayez ceci:

<RelativeLayout 
    android:id="@+id/RelativeLayout1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 

    <ScrollView 
     android:id="@+id/scrollView1" 
     android:layout_width="fill_parent" 
     android:layout_height="match_parent" 
     android:layout_alignParentTop="true" 
android:layout_above="@+id/LinearLayout1" > 

     <TableLayout 
      android:id="@+id/list" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="#d9d9d9" 
      android:clickable="true" 
      android:stretchColumns="*" > 
     </TableLayout> 
    </ScrollView> 

    <LinearLayout 
     android:id="@+id/LinearLayout1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:background="@android:color/background_light" 
     android:orientation="vertical" > 

     <TextView 
      android:id="@+id/showingXoutOfY" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_horizontal" 
      android:text="@string/XOutOfY" 
      android:textColor="@color/blue" /> 

     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_horizontal" 
      android:text="@string/copyright" 
      android:textColor="@android:color/black" /> 
    </LinearLayout> 
</RelativeLayout> 
+0

Ajoutez simplement layout_above = "@ + id/LinearLayout1" dans scrollview –

+0

et eclipse dit: Exception levée pendant le rendu: Les dépendances circulaires ne peuvent pas exister dans RelativeLayout –

+1

Est-ce que cela a résolu votre problème? Et vous pouvez également supprimer la propriété layout_below de LinearLayout car elle n'est pas nécessaire. –

Questions connexes