user468311
user468311

Reputation:

Android positioning views in RelativeLayout

I've got following view hierarchy:

enter image description here

I want ScrollView with nested RelativeLayout to be between relativeHeader and relativeFooter, because now it's overlapped by footer. But when I try to add android:layout_above="@id/relativeFooter" I got error that there is no such view. There's probably something funny in what I'm doing. And all that 'nested relativelayouts' stuff. But how can I acomplish my goal? Here's xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:orientation="vertical">
  <RelativeLayout
    android:id="@+id/relativeHeader"
    android:layout_width="fill_parent"
    android:layout_height="60dp"
    android:orientation="horizontal">
    <ImageView
      android:id="@+id/imgMainLogo"
      android:layout_centerVertical="true"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
    />
     <Button
      android:id="@+id/btnShort"
      android:text="@string/btnShortRemove_title"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_alignParentRight="true"
    />
  </RelativeLayout>
   <ScrollView
    android:id="@+id/scrollContent"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/relativeHeader"
    android:paddingBottom="5dp">
  <RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    >
    <TextView
       android:id="@+id/tvDetailedTitle"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:textSize="20sp"
    />
    <TextView
       android:paddingTop="5dp"
       android:id="@+id/tvDetailedPrice"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_below="@id/tvDetailedTitle"
    />
    <TextView
       android:paddingTop="5dp"
       android:id="@+id/tvDetailedPhoneTitle"
       android:gravity="center_vertical"
       android:layout_width="fill_parent"
       android:layout_height="22dp"
       android:layout_below="@id/tvDetailedPrice"
    />
    <TextView
       android:paddingLeft="5dp"
       android:paddingTop="5dp"
       android:id="@+id/tvDetailedPhone"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_below="@id/tvDetailedPhoneTitle"
    />
    <TextView
       android:paddingTop="5dp"
       android:id="@+id/tvDetailedDescriptionTitle"
       android:gravity="center_vertical"
       android:layout_width="fill_parent"
       android:layout_height="22dp"
       android:layout_below="@id/tvDetailedPhone"
    />
    <TextView
       android:paddingTop="5dp"
       android:paddingLeft="5dp"
       android:layout_below="@id/tvDetailedDescriptionTitle"
       android:id="@+id/tvDetailedDescription"
       android:text="Description"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
     />
     <Gallery 
       android:id="@+id/gallery"
       android:layout_below="@+id/tvDetailedDescription"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:paddingTop="5dp"
     />
 </RelativeLayout>
 </ScrollView>
   <RelativeLayout
    android:id="@+id/relativeFooter"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:layout_alignParentBottom="true"
    android:background="#716D69"
    >
    <Button
      android:id="@+id/btnDetailedEmail"
      android:text="@string/btnDetailedEmail_title"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_alignParentLeft="true"
      android:width="120dp"
    />
     <Button
      android:id="@+id/btnDetailedCall"
      android:text="@string/btnDetailedCall_title"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_alignParentRight="true"
      android:width="120dp"
    />
    </RelativeLayout>

</RelativeLayout>

Upvotes: 1

Views: 6358

Answers (1)

Varun
Varun

Reputation: 33983

<RelativeLayout
    android:id="@id/relativeFooter"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:layout_alignParentBottom="true"
    android:background="#716D69"
    >

Remove the "+" from the android:id="@id/relativeFooter" like above and do this

<ScrollView
    android:id="@+id/scrollContent"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/relativeHeader"
    android:layout_above="@+id/relativeFooter"
    android:paddingBottom="5dp">

Upvotes: 3

Related Questions