在ListView上面添加RelativeLayout

时间:2012-03-27 17:48:02

标签: android android-layout android-listview

我正在尝试在ListView上面添加一个包含2个TextView的RelativeLayout作为标题,但是遇到了麻烦。到目前为止我的代码显示了ListView,页脚,但没有标题:

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

    <!-- Header -->
    <RelativeLayout
        android:orientation="horizontal" 
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        >
        <TextView 
            android:id="@+id/headerIcon" 
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content" 
            android:layout_alignParentLeft="true"
         />          
        <TextView 
            android:id="@+id/headerText" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:layout_alignParentRight="true"
            android:background="#919191"
          />
          </RelativeLayout>
    <!-- Header -->

    <LinearLayout
        android:orientation="vertical"
         android:layout_width="fill_parent"
         android:layout_height="fill_parent"
        android:padding="0dp"       
        >           
             <ListView 
                android:id="@android:id/list"
                android:layout_width="fill_parent"
                 android:layout_height="fill_parent"
            />

             <TextView android:id="@android:id/empty"
                android:layout_width="fill_parent"
                 android:layout_height="fill_parent"
                android:text="No items"
                android:padding="5dp"
                />
     </LinearLayout>

    <!-- Footer -->
    <RelativeLayout
        android:orientation="horizontal" 
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        >
        <TextView 
            android:id="@+id/footerIcon" 
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content" 
            android:layout_alignParentLeft="true"
         /> 
        <TextView 
            android:id="@+id/footerText" 
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content" 
            android:layout_alignParentLeft="right"
         /> 
    </RelativeLayout>        
    <!-- Footer -->
  </RelativeLayout>

更新

我有部分工作。下面的代码确实显示了标题TextViews,但是当我滚动ListView时,标题布局闪烁并消失。为什么在Android中使用布局会如此令人沮丧?

这是部分有效的代码:

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

     <RelativeLayout
            android:orientation="horizontal" 
            android:layout_height="wrap_content"
            android:layout_width="fill_parent"
            >

            <TextView 
                android:id="@+id/headerIcon" 
                android:layout_width="fill_parent" 
                android:layout_height="wrap_content" 
                android:layout_alignParentLeft="true"
                android:background="#919191"
             />

            <TextView 
                android:id="@+id/headerText" 
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content" 
                android:layout_alignParentRight="true"
                android:background="#919191"
              />
    </RelativeLayout>   

     <LinearLayout
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
      >        
       <ListView android:id="@android:id/list" android:layout_width="fill_parent"  android:layout_height="fill_parent" />

        <TextView android:id="@android:id/empty"
            style="@style/BaseStyle"
            android:text="No keywords entered"
            android:padding="5dp"
         />
    </LinearLayout>

     <RelativeLayout
            android:orientation="horizontal" 
            android:layout_height="wrap_content"
            android:layout_width="fill_parent"
            >
            <TextView 
                android:id="@+id/statusUpdated" 
                android:layout_width="fill_parent" 
                android:layout_height="wrap_content" 
                style="@style/Status"
                android:layout_alignParentLeft="true"
                android:background="#919191"
             />

            <TextView 
                android:id="@+id/statusItems" 
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content" 
                style="@style/Status"
                android:layout_alignParentRight="true"
                android:background="#919191"
              />
    </RelativeLayout>   

 </RelativeLayout>

2 个答案:

答案 0 :(得分:0)

您的LinearLayout设置为fill_parent并可能导致您的问题

答案 1 :(得分:0)

<!-- Header -->
    <RelativeLayout
        android:orientation="horizontal" 
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:layout_above="@+id/llayout"
        >
  <LinearLayout android:id="@+id/llayout">
         <ListView />
         <TextView />
  </LinearLayout >

 <!-- Footer-->
    <RelativeLayout
        android:orientation="horizontal" 
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:layout_below=="@+id/llayout"
        / >