如何在listview下面有一个按钮,在android中有match_parent作为宽度和高度

时间:2014-11-16 08:06:06

标签: java android listview android-listview

我正在开发一个具有自定义列表视图的项目。由于baseadapter的getView()方法被保持被调用列表视图中的行数三次,有人建议我更改列表视图的宽度和高度至match_parent。但现在的问题是列表视图下方有一个按钮,现在看不到。我如何让它可见。

我所指的帖子:custom listview adapter getView method being called multiple times, and in no coherent order

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

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:text="LIST OF TASKS" />

<ListView
    android:id="@+id/list_tasks_final"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginTop="50px"
     >

</ListView>
<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/list_tasks_final"
    android:layout_centerHorizontal="true"
    android:text="SUBMIT JOB"
    android:id="@+id/btnjobsubmit"
     />

</RelativeLayout>

问题是该按钮现在不可见。如何使其可见?

3 个答案:

答案 0 :(得分:0)

查看我的代码 您应该将列表视图包装在另一个视图LinearLayout中,并将高度设置为该布局。

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

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="LIST OF TASKS" />
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="300dp">

        <ListView
            android:id="@+id/list_tasks_final"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginTop="50px"
            >
        </ListView>
    </LinearLayout>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:text="SUBMIT JOB"
        android:id="@+id/btnjobsubmit"
        />

</LinearLayout>

答案 1 :(得分:0)

您应该使用RelativeLayout而不是LinearLayout。根据我们的需要,它可以更灵活地放置不同的视图。

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

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_gravity="center_horizontal"
    android:text="LIST OF TASKS" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <ListView
            android:id="@+id/list_tasks_final"
            android:layout_width="match_parent"
            android:layout_height="200dp"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:layout_marginTop="10dp"
            android:layout_marginBottom="10dp"/>

    </LinearLayout> 

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:text="SUBMIT JOB"
    android:id="@+id/btnjobsubmit" />

</LinearLayout>

答案 2 :(得分:0)

这里的问题是你的列表正在使用屏幕的所有空间(Layout_height = match_parent,layout_width = match_parent),按钮的属性为layout_below,然后它显示在整个屏幕的下方。

要解决此问题,只需删除属性layout_below:

android:layout_below="@+id/list_tasks_final"