Android ListView addFooterView边距/填充问题

时间:2013-12-12 09:52:19

标签: android listview margin footer

我有一个ListView,它有一个LinearLayout作为页脚视图,包含一个TextView和一个像这样初始化的ListView:

mylist = (ListView) findViewById(R.id.mylist);
mylistadapter = new MyListAdapter(MainView.this, info);
myfooterlistadapter = new MyListAdapter(MainView.this, info);
LinearLayout footer = (LinearLayout)getLayoutInflater().inflate(R.layout.myfooter, null);
myfooterlist = (ListView) footer.findViewById(R.id.myfooterlist);
mylist.addFooterView(footer, null, false);

mylist声明为:

<ListView
    android:id="@+id/mylist"
    android:layout_width="fill_parent"
    android:layout_height="0dip" <!-- have also tried fill_parent without weight, same-->
    android:layout_weight="1"
    android:layout_marginLeft="5dip"
    android:layout_marginRight="5dip"
    android:cacheColorHint="#00000000"
    android:dividerHeight="1dip"
    android:drawSelectorOnTop="false" />

页脚(LinearLayout声明为):

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:id="@+id/myfooter" >

    <TextView
        android:id="@+id/myfooterlabel"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/headermainview"
        android:paddingLeft="2dip"
        android:text="@string/myfootertext"
        android:textColor="@color/black"
        android:textSize="16sp"
        android:textStyle="bold"
        android:visibility="gone" />

    <ListView
        android:id="@+id/myfooterlist"
        android:layout_width="fill_parent"
        android:layout_height="0dip" <!-- have also tried fill_parent without weight, same-->
        android:layout_weight="1"
        android:cacheColorHint="#00000000"
        android:dividerHeight="1dip"
        android:drawSelectorOnTop="false"
        android:visibility="gone"
        android:background="@color/green" />

</LinearLayout>

如果我的页脚列表包含项目,我会将TextView和页脚ListView上的可见性更改为可见。

现在,我在页脚列表视图中绘制了背景绿色以查看问题(抱歉隐藏文本但是它是机密信息)。正如您所看到的,我在页脚列表的底部继续获得一些额外的余量。我已经尝试从fill_parent更改为wrap_content到0dip,其中weight = 1用于列表和LinearLayout但没有工作。正如您所看到的,我没有任何与在页脚列表中的最后一项之后添加额外边距相关的内容。 顶部列表有20个项目(我已滚动到屏幕底部),我的页脚列表仅在这种情况下有1个项目:

Extra margin on bottom of footer list

任何想法是什么以及如何在页脚列表的底部没有这个额外的余量?谢谢!

更新:

经过进一步检查后,似乎无论第二个清单的大小(我添加了更多项目),高度保持不变(绿色框总是相同的大小)。我在LinearLayout(无重量)和第二个列表上更改为fill_parent高度但仍然具有相同的大小。 ListView不会动态计算页脚的高度,知道它有多大吗?

我正在添加一个新屏幕截图,以便更详细地向您展示第二项是否已被切断(顶部列表未展开以覆盖整个第二个列表)。

1st list doesn't stretch to fully cover 2st list

更新2:

经过进一步调查后,如果我将第二个ListView(myfooterlist)的高度设置为特定高度(比如300dip),那么当我滚动到底部时,第一个列表会显示整个第二个列表。如果我将它设置为fill_parent或wrap_conent或0dp并添加layout_weight = 1,那么它为我提供了与上面所有图像相同的高度。知道动态计算高度会发生什么吗?

1 个答案:

答案 0 :(得分:0)

我认为你不能在ListView的页脚中嵌入第二个列表,我认为这是你问题的根源。在同一视图(或屏幕)中嵌入多个可滚动视图时会出现问题。

将第二个listview移出页脚,我认为它会正确显示 - 我认为你不能将它嵌入你的页脚。