2012-12-01 9 views
11

ho provato molte volte a aligh gli elementi in mio RelativeLayout ma io non ottenere il risultato che mi aspettavo e cioè:RelativeLayout Scorrevole

enter image description here

mi piacerebbe allineare il primo pulsante in alto a destra e poi ho TextView multipla e voglio tutti loro scorrevole, ma quando inserisco il tag ottengo un errore, questo è il mio codice:

<?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

devi solo scorrere le visualizzazioni di testo? o tutte le visualizzazioni inclusi i pulsanti? – Jayabal

risposta

19

ScrollView non consente più di un figlio diretto, è per questo che ricevendo l'errore. Quindi prova come segue:

<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

Questo è esattamente quello che volevo, basta aggiungere \t \t android: layout_below = "@ + id/textView3" al secondo pulsante e funziona, grazie a tutti – Davis

1

non puoi mettere più di un widget in uno ScrollView. A questo devi avvolgere il tuo widget con una vista. come qui di seguito

<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

Si sta aggiungendo scrollview all'interno relativelayout. Devi aggiungere Relativelayout all'interno di scrollview per ottenere risultati. e un'altra cosa scrollview lattina contiene solo un bambino alla volta in modo da aggiungere relativelayout in scrollview e vedere la differenza