填充ListView时,“推送”LinearLayout

时间:2012-11-23 09:59:45

标签: java android listview android-linearlayout

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >
    <LinearLayout 
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/buttonLayout" 
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:layout_weight="1">
        <Button
        android:id="@+id/vehicleButton"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:layout_weight="1"
        android:text="Refresh"
        android:onClick="getVehicles" />
        <Button
        android:id="@+id/logoutButton"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:layout_weight="1"
        android:text="Logout"
        android:onClick="logout" />
    </LinearLayout>

    <ListView
        android:id="@+id/android:list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    </ListView>

</LinearLayout>

大家好,当上面的ListView只填充了几个项目时,我仍然可以看到按钮,但是,当ListView的填充量超过屏幕可以显示时,按钮似乎被“推”到了UI并且不再可见,现在只能看到可滚动的ListView。

对于如何让按钮再次出现在较长的列表上有什么想法吗?

由于

2 个答案:

答案 0 :(得分:1)

尝试将ListView包装在LinearLayout中。您正在为按钮添加权重以确保它们出现,但是当ListView呈现时,它似乎正在导致它。如果有帮助,请告诉我。

<LinearLayout
    android:layout_height="0"
    android:layout_width="fill_parent"
    android:layout_weight="0"
    android:orientation="vertical">
    <ListView
        android:id="@+id/android:list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    </ListView>
</LinearLayout>

答案 1 :(得分:0)

作为参考,我使用以下方法解决了这个问题:

<RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical">
        <LinearLayout 
            android:id="@+id/buttonLayout" 
            android:layout_height="40dp"
            android:layout_width="match_parent"
            android:orientation="horizontal">
            <Button
            android:id="@+id/vehicleButton"
            android:layout_height="wrap_content"
            android:layout_width="fill_parent"
            android:layout_weight="1"
            android:text="Refresh"
            android:onClick="getVehicles" />
            <Button
            android:id="@+id/mapButton"
            android:layout_height="wrap_content"
            android:layout_width="fill_parent"
            android:layout_weight="1"
            android:text="Map" />
            <Button
            android:id="@+id/logoutButton"
            android:layout_height="wrap_content"
            android:layout_width="fill_parent"
            android:layout_weight="1"
            android:text="Logout"
            android:onClick="logout" />
        </LinearLayout>
        <ListView
            android:id="@+id/android:list"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:layout_below="@id/buttonLayout">
        </ListView>
</RelativeLayout>

所以我使用了相对布局并且还添加了 android:layout_below =&#34; @ id / buttonLayout到listview强制它显示在buttonLayout下面