2012-12-01 13 views
11

Ich habe viele Male versucht, die Elemente in meinem RelativeLayout aligh aber ich nicht das Ergebnis bekomme ich erwartet, dass ist:RelativeLayout Scrollbare

enter image description here

Ich möchte die erste Taste auszurichten rechts oben und ich habe mehrere Textview dann, und ich will sie alle rollbare, aber wenn ich den Tag legen ich einen Fehler, dies ist mein Code:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/RL01" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" 
    android:padding="5dp"> 

    <ScrollView 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 

    <Button 
      android:id="@+id/btnBrowser" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Browser" 
      android:layout_marginTop="5dp" 
      > 
    </Button> 

     <TextView 
     android:id="@+id/txtAuthor" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="20dp" 
     android:textStyle="bold" 
     android:textColor="#143781" 
     android:layout_marginTop="10dp" 
     android:layout_marginLeft="20dp" 
     android:layout_below="@+id/btnBrowser" 
     > 
    </TextView> 
    <TextView 
     android:id="@+id/txtDate" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="14dp" 
     android:textColor="#8D89B3" 
     android:layout_marginTop="5dp" 
     android:layout_marginLeft="20dp" 
     android:layout_below="@+id/txtAuthor"> 
    </TextView> 
    <TextView 
     android:id="@+id/txtTitle" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="14dp" 
     android:textStyle="bold" 
     android:textColor="#000000" 
     android:layout_marginLeft="20dp" 
     android:layout_marginTop="5dp" 
     android:layout_below="@+id/txtDate"> 
     > 
    </TextView> 
    <TextView 
     android:id="@+id/txtMsg" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:textSize="14dp" 
     android:textColor="#000000" 
     android:layout_marginLeft="20dp" 
     android:layout_below="@+id/txtTitle"> 
    </TextView> 

    <Button 
      android:id="@+id/btnReply" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Reply" 
      android:layout_marginTop="20dp" 
      android:layout_below="@+id/txtMsg" 
      android:layout_centerInParent="@+id/txtMsg"> 

    </Button> 
     </ScrollView> 
</RelativeLayout> 
+0

müssen Sie nur die textviews scrollen? oder alle Ansichten einschließlich Schaltflächen? – Jayabal

Antwort

19

ScrollView nicht mehr als ein direktes Kind erlauben, das ist, warum Sie Fehler. So versuchen Sie wie folgt:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 

<RelativeLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
     <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentTop="true" 
     android:text="Button" /> 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_below="@+id/button1" 
     android:text="TextView" /> 

    <TextView 
     android:id="@+id/textView2" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_below="@+id/textView1" 
     android:text="TextView" /> 

    <TextView 
     android:id="@+id/textView3" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_below="@+id/textView2" 
     android:text="TextView" /> 

    <Button 
     android:id="@+id/button2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_centerHorizontal="true" 
     android:layout_below="@+id/textView3" 
     android:text="Button" /> 

    </RelativeLayout> 
</ScrollView> 
+0

Das ist genau das, was ich wollte, nur \t \t Android: layout_below = "@ + ID/TextView3" auf die zweite Schaltfläche hinzufügen und es funktioniert, danke Ihnen allen – Davis

1

Sie kippe mehr als ein Widget in einem Scrollview setzen. Dazu müssen Sie Ihr Widget mit einer Ansicht umhüllen. wie unten

<ScrollView 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

    <RelativeLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" > 
     <Button 
      android:id="@+id/btnBrowser" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerVertical="false" 
      android:layout_marginTop="5dp" 
      android:text="Browser" > 

     </Button> 


     <TextView 
      android:id="@+id/txtAuthor" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/btnBrowser" 
      android:layout_marginLeft="20dp" 
      android:layout_marginTop="10dp" 
      android:text="Text" 
      android:textColor="#143781" 
      android:textSize="20dp" 
      android:textStyle="bold" > 
     </TextView> 

     <TextView 
      android:id="@+id/txtDate" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/txtAuthor" 
      android:layout_marginLeft="20dp" 
      android:layout_marginTop="5dp" 
      android:textColor="#8D89B3" 
      android:textSize="14dp" android:text="Text" 
      > 
     </TextView> 

     <TextView 
      android:id="@+id/txtTitle" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/txtDate" 
      android:layout_marginLeft="20dp" 
      android:layout_marginTop="5dp" 
      android:textColor="#000000" 
      android:textSize="14dp" 
      android:textStyle="bold" android:text="Text"> 
     </TextView> 

     <TextView 
      android:id="@+id/txtMsg" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/txtTitle" 
      android:layout_marginLeft="20dp" 
      android:textColor="#000000" 
      android:textSize="14dp" android:text="Text"> 
     </TextView> 

     <Button 
      android:id="@+id/btnReply" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/txtMsg" 
      android:layout_centerInParent="@+id/txtMsg" 
      android:layout_marginTop="20dp" 
      android:text="Reply" > 
     </Button> 
    </RelativeLayout> 
</ScrollView> 

1

Sie fügen scrollview innerhalb relativelayout. Sie müssen Relativelayout innerhalb scrollview hinzufügen, um Ergebnisse zu erhalten. und noch eine Sache scrollview Dose enthält nur ein Kind zu einer Zeit, so fügt relativelayout in scrollview und sehen Sie den Unterschied