2016-04-22 8 views
0

Hier ist mein Layout XML:3 gleiche Höhe Reihen in einem Scroll

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     android:weightSum="3"> 
     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1"> 
      <ImageView 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:scaleType="centerCrop" 
       android:src="@mipmap/banner" /> 
     </RelativeLayout> 
     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1"> 
      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginBottom="10dp" 
       android:layout_marginEnd="10dp" 
       android:layout_marginStart="10dp" 
       android:layout_marginTop="10dp" 
       android:orientation="horizontal" 
       android:id="@+id/row2"> 

       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="Menu 1" 
        android:textColor="@color/darkBlue" 
        android:textSize="20sp" 
        android:textStyle="bold" /> 

       <TextView 
        android:id="@+id/tvCountMyRecipes" 
        android:layout_width="40dp" 
        android:layout_height="wrap_content" 
        android:layout_marginStart="10dp" 
        android:textAlignment="center" 
        android:textColor="@android:color/white" 
        android:textSize="12sp" /> 
       <Space 
        android:layout_width="0dp" 
        android:layout_height="0dp" 
        android:layout_weight="1" /> 
       <Button 
        android:id="@+id/btnViewAll1" 
        android:layout_width="wrap_content" 
        android:layout_height="32dp" 
        android:text="View All" 
        android:textColor="@color/blue_360" 
        android:textSize="16sp" /> 
      </LinearLayout> 
      <android.support.v7.widget.RecyclerView 
       android:id="@+id/group1" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:paddingBottom="5dp" 
       android:paddingTop="5dp" 
       android:layout_below="@id/row2" /> 
     </RelativeLayout> 
     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1"> 
      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginBottom="10dp" 
       android:layout_marginEnd="10dp" 
       android:layout_marginStart="10dp" 
       android:layout_marginTop="10dp" 
       android:orientation="horizontal" 
       android:id="@+id/row3"> 
       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="Menu 2" 
        android:textColor="@color/darkBlue" 
        android:textSize="20sp" 
        android:textStyle="bold" /> 
       <TextView 
        android:id="@+id/tvCountMyFavorites" 
        android:layout_width="40dp" 
        android:layout_height="wrap_content" 
        android:layout_marginStart="10dp" 
        android:textAlignment="center" 
        android:textColor="@android:color/white" 
        android:textSize="12sp" /> 
       <Space 
        android:layout_width="0dp" 
        android:layout_height="0dp" 
        android:layout_weight="1" /> 
       <Button 
        android:id="@+id/btnViewAllFavorites" 
        android:layout_width="wrap_content" 
        android:layout_height="32dp" 
        android:text="View All" 
        android:textColor="@color/blue_360" 
        android:textSize="16sp" /> 
      </LinearLayout> 
      <android.support.v7.widget.RecyclerView 
       android:id="@+id/group2" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:paddingBottom="5dp" 
       android:paddingTop="5dp" 
       android:layout_below="@id/row3" /> 
     </RelativeLayout> 
    </LinearLayout> 
</ScrollView> 

Wie Sie aus meinem Layout sehen, die äußere LinearLayout enthält 3 RelativeLayout die alle layout_weight bis 1 entspricht und die LinearLayout hat weightSum gleich das Verhalten des aktuellen Layout 3.

ist jedoch: der 1. RelativeLayout sehr wenig Platz geteilt (etwa 10%) und die zweite & 3. RelativeLayout geteilt 45% der Höhe.

Wie kann ich sie gleichmäßig teilen die Höhe?

+0

Warum müssen Sie 'ScrollView' als Eltern erstellen? Was passiert mit diesen 3 Ansichten beim Scrollen? Anyway, versuchen Sie, 'ScrollView'' android: layout_height = "wrap_content" ' –

Antwort

1

Attribute Scroll zu auf unter Hinzufügen

android:layout_centerVertical="true" 
    android:fadingEdge="none" 
    android:fillViewport="true" 
    android:isScrollContainer="true" 

prüfen Layout unten

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_centerVertical="true" 
    android:fadingEdge="none" 
    android:fillViewport="true" 
    android:isScrollContainer="true" 
    android:scrollbars="none"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     android:weightSum="3"> 

     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1"> 

      <ImageView 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:scaleType="centerCrop" 
       android:src="@mipmap/banner" /> 
     </RelativeLayout> 

     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1"> 

      <LinearLayout 
       android:id="@+id/row2" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginBottom="10dp" 
       android:layout_marginEnd="10dp" 
       android:layout_marginStart="10dp" 
       android:layout_marginTop="10dp" 
       android:orientation="horizontal"> 

       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="Menu 1" 
        android:textColor="@color/blue_360" 
        android:textSize="20sp" 
        android:textStyle="bold" /> 

       <TextView 
        android:id="@+id/tvCountMyRecipes" 
        android:layout_width="40dp" 
        android:layout_height="wrap_content" 
        android:layout_marginLeft="5dp" 
        android:layout_marginStart="10dp" 
        android:textAlignment="center" 
        android:textColor="@android:color/white" 
        android:textSize="12sp" /> 

       <Space 
        android:layout_width="0dp" 
        android:layout_height="0dp" 
        android:layout_weight="1" /> 

       <Button 
        android:id="@+id/btnViewAll1" 
        android:layout_width="wrap_content" 
        android:layout_height="32dp" 
        android:text="View All" 
        android:textColor="@color/blue_360" 
        android:textSize="16sp" /> 
      </LinearLayout> 

      <android.support.v7.widget.RecyclerView 
       android:id="@+id/group1" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_below="@id/row2" 
       android:paddingBottom="5dp" 
       android:paddingTop="5dp" /> 
     </RelativeLayout> 

     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1"> 

      <LinearLayout 
       android:id="@+id/row3" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginBottom="10dp" 
       android:layout_marginEnd="10dp" 
       android:layout_marginStart="10dp" 
       android:layout_marginTop="10dp" 
       android:orientation="horizontal"> 

       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="Menu 2" 
        android:textColor="@color/blue_360" 
        android:textSize="20sp" 
        android:textStyle="bold" /> 

       <TextView 
        android:id="@+id/tvCountMyFavorites" 
        android:layout_width="40dp" 
        android:layout_height="wrap_content" 
        android:layout_marginLeft="5dp" 
        android:layout_marginStart="10dp" 
        android:textAlignment="center" 
        android:textColor="@android:color/white" 
        android:textSize="12sp" /> 

       <Space 
        android:layout_width="0dp" 
        android:layout_height="0dp" 
        android:layout_weight="1" /> 

       <Button 
        android:id="@+id/btnViewAllFavorites" 
        android:layout_width="wrap_content" 
        android:layout_height="32dp" 
        android:text="View All" 
        android:textColor="@color/blue_360" 
        android:textSize="16sp" /> 
      </LinearLayout> 

      <android.support.v7.widget.RecyclerView 
       android:id="@+id/group2" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_below="@id/row3" 
       android:paddingBottom="5dp" 
       android:paddingTop="5dp" /> 
     </RelativeLayout> 
    </LinearLayout> 
</ScrollView> 
+0

Vielen Dank für Ihre Eingabe, aber ich denke, der Grund der ungleichmäßigen Verteilung von 3 Zeilen ist aufgrund der Höhe der Recycler-Elemente, die die Höhe der letzten 2 Zeilen beeinflusst. – Raptor

+0

Ich denke nicht. Ich bekomme eine angemessene Ausgabe auf meiner Seite. –

+0

Benachrichtigen Sie mich, wenn Sie nicht behoben haben –

0

Weil Ihr mit Scroll Sie benötigen, um Ihre Ansicht Hafen zu füllen, um die Scroll-Ansicht zu machen besetzen den gesamten Bildschirm

<ScrollView 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:fillViewport="true"/> 
     //..... your other code here 
</ScrollView> 
+0

Danke, aber Hinzufügen von' android: fillViewport = "true" 'hat keinen Einfluss auf das Ergebnis der Anzeige. – Raptor

+0

Ich habe versucht, Ihren Code und seine Arbeit gut auf mich –

+0

Vielen Dank für Ihre Eingabe, aber ich denke, der Grund der ungleichmäßigen Verteilung von 3 Zeilen ist aufgrund der Höhe der Recycler Artikel, die die Höhe der letzten 2 Zeilen beeinflusst. – Raptor

Verwandte Themen