listview addFooterView问题

时间:2010-10-18 17:26:31

标签: android listview android-linearlayout android-listview

我有内容我需要在我的列表视图上方和下方显示,如果你可以一起使用scrollviews和listviews,那么滚动视图会很好用。既然那不是最好的解决方案,我一直在尝试做一些事情来为我的列表视图添加页脚内容,

下面的图片显示了当我添加不同类型的行作为最后一行时会发生什么。我无法获取我的内容来填充行的宽度

alt text

我有一些需要进入页脚的按钮。我正在使用扩展BaseAdapter的自定义适配器。

我也尝试过使用addFooterView但是如果要实现自己的适配器,我对如何使用addFooterView方法感到困惑。任何人都有任何关于如何在自定义适配器上实现addFooterView的简单示例

有没有办法可以让这个位置的行(如图所示)显示得更好,这里是我用来创建这个页脚行的代码

        View v = getLayoutInflater().inflate(R.layout.item_listview_footer, null);
        LinearLayout ll = (LinearLayout) v.findViewById(R.id.ll);
        return ll;  // return ll as convertView in getView function

编辑:

这是我的页脚布局的xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="wrap_content" android:layout_width="fill_parent" android:background="@drawable/red" android:orientation="vertical" android:id="@+id/ll">
    <Button android:id="@+id/specialInsButton" style="@style/button" android:text="Add Special Instructions" android:layout_width="fill_parent"/>
    <Button android:id="@+id/addToBagButton" style="@style/button" android:text="Add To Bag"/>
    <EditText android:id="@+id/quantity" style="@style/standard" android:text="1"/>
</LinearLayout>

这是样式/按钮的xml

<style name="button">
        <item name="android:layout_height">wrap_content</item>
        <item name="android:layout_width">fill_parent</item>
        <item name="android:textSize">17px</item>
        <item name="android:textStyle">bold</item>
        <item name="android:typeface">sans</item>
        <item name="android:gravity">center</item>
        <item name="android:layout_gravity">center</item>

    </style>

标准风格

 <style name="standard">
        <item name="android:layout_height">wrap_content</item>
        <item name="android:layout_width">wrap_content</item>
    </style>

1 个答案:

答案 0 :(得分:52)

您可以将addFooterView与自定义适配器一起使用。请务必在调用listview.setAdapter()之前调用addFooterView。

View v = getLayoutInflater().inflate(R.layout.item_listview_footer, null);
listView.addFooterView(v);
listView.setAdapter(adapter);