Android在RelativeLayout中定位视图

时间:2011-05-22 18:06:57

标签: android android-layout

我有以下视图层次结构:

enter image description here

我希望ScrollView与嵌套的RelativeLayout位于relativeHeader和relativeFooter之间,因为现在它与页脚重叠。但是当我尝试添加android:layout_above =“@ id / relativeFooter”时,我得到的错误是没有这样的视图。在我正在做的事情中可能有些有趣。所有那些'嵌套的相对布局'的东西。但是我怎样才能实现我的目标呢? 这是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>

1 个答案:

答案 0 :(得分:3)

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

从上面的android:id="@id/relativeFooter"中移除“+”并执行此操作

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