我正在尝试构建一个Android视图,将listview作为页眉和页脚。 到目前为止只管理只出现在标题中。 这是一张图片,解释了我想要的和我所拥有的。
有谁知道我做错了什么? 干掉当前代码:
<?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>
答案 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