带有页眉和页脚的listview

时间:2012-01-14 15:20:10

标签: android android-layout android-listview

我正在尝试构建一个Android视图,将listview作为页眉和页脚。 到目前为止只管理只出现在标题中。 这是一张图片,解释了我想要的和我所拥有的。

Attempt

有谁知道我做错了什么? 干掉当前代码:

<?xml version="1.0" encoding="utf-8"?>  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="#ffffff">

<!--  Header Starts-->
<LinearLayout android:id="@+id/header" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:background="@layout/header_gradient" 
        android:layout_margin="5dip" 
        android:paddingTop="13dip" 
        android:paddingBottom="8dip">
    <!-- Logo Start-->
    <ImageView android:src="@drawable/logo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dip" />
    <!-- Logo Ends -->
</LinearLayout>
<!--  Header Ends -->

<!-- Content -->
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
              android:layout_height="fill_parent"
              android:layout_width="fill_parent"
              android:orientation="vertical"
              android:gravity="center">

        <LinearLayout android:orientation="horizontal"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_margin="5dip">

            <EditText android:id="@+id/searchText"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:layout_weight="1"/>

            <ImageButton android:id="@+id/searchButton"
                    android:layout_height="wrap_content" 
                    android:layout_width="wrap_content" 
                    android:src="@android:drawable/ic_menu_search" />
        </LinearLayout> 

        <ListView android:id="@+id/lstNews" 
                android:layout_height="fill_parent"
                android:layout_width="fill_parent"
                android:layout_marginLeft="5dip"
                android:layout_marginRight="5dip" />
    </LinearLayout>

<!-- Footer Start -->
<LinearLayout android:id="@+id/footer" 
     android:layout_width="fill_parent" 
     android:layout_height="30dip" 
     android:background="@layout/footer_gradient" 
     android:layout_margin="5dip" 
     android:paddingTop="5dip" 
     android:paddingLeft="5dip" 
     android:layout_alignParentBottom="true">
    <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#FFFFFF" android:text="Instituto Superior de " />
    <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#FFFFFF" android:textStyle="bold" android:text="Engenharia" />
    <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#FFFFFF" android:text=" do Porto" />
</LinearLayout>
<!-- Footer Ends --></LinearLayout>

3 个答案:

答案 0 :(得分:3)

一种选择是使用RelativeLayout。

首先,您需要将最外面的LinearLayout更改为RelativeLayout

下一步是将标题android:layout_above="@id/content"添加到标题中。

<!--  Header Starts-->
<LinearLayout android:id="@+id/header" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="@layout/header_gradient" 
    android:layout_margin="5dip" 
    android:paddingTop="13dip" 
    android:paddingBottom="8dip"
    android:layout_above="@id/content">

最后一步是将属性android:layout_above="@id/footer"android:id="@+id/content"添加到包含内容和列表视图的LinearLayout,即

<!-- Content -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
          android:id="@+id/content"
          android:layout_height="fill_parent"
          android:layout_width="fill_parent"
          android:orientation="vertical"
          android:gravity="center"
          android:layout_above="@id/footer">

答案 1 :(得分:0)

项目按顺序添加到LinearLayout中,因此当ListView填充父项时,它会占用所有空间。我尝试将ListView的layout_weight设置为1。

答案 2 :(得分:0)

在第二个根布局设置高度wrap_content或其他任何内容但不是fill_parent。 若Yu想要设置wrap_content设置android:weight 1.0或简单1