Davis Davis - 4 months ago 21
Android Question

RelativeLayout Scrollable

I have tried many times to aligh the elements in my RelativeLayout but I dont get the result I expected that is:

enter image description here

I'd like to align the first button to top right and then I have multiple Textview and I want all of them Scrollable, but when I insert the tag I get an error, this is my 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>

Answer

ScrollView does not allow more than one direct child, that's why you getting error. So you try as follows:

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