2011-08-02 62 views
9

我有一个ListView可以包含任意数量的项目。当它使用小于屏幕的整个高度时,我想显示一个填充剩余空间的页脚。如何让ListView伸展的页脚填充剩余空间?

页脚只是一个平铺图像。我不能将它设置为ListView或其容器的背景,因为列表项是部分透明的,它必须是主背景,而不是通过它们可见的页脚。

添加页脚视图如果页脚是一个固定的高度的工作正常,但如果在固定的高度大于剩余高度然后ListView的滚动不必要更多。

使得页脚视图FILL_PARENT似乎没有任何影响,它只是不可见。

把页脚视图到父布局也没有任何影响,因为ListView中似乎充满了整个高度,除非它给了一个固定的layout_height值。

这可能吗?

+0

对所有回答者的道歉,我忽略了说ListView是在一个ListFragment中,这似乎是导致父布局解决方案不起作用的原因。我改变它是一个正常的片段,并明确设置ListView,使用重量现在的作品。感谢您的努力! – Ouchdroid

+0

嗨,我很好奇你的解决方案..在哪个布局你把重量?列表视图或列表项视图? – akhyar

回答

1

尝试布局权重设定为一个,或检查出试图合并视图: http://android-developers.blogspot.com/2009/03/android-layout-tricks-3-optimize-by.html

+0

即使使用权重为1的其他元素,ListView也会占用整个父项。我无法将页脚合并到ListView中(AdapterView不支持addView),并将它合并到父项中似乎与将它直接进入父级(用fill_parent填充整个空间,否则不显示)。 – Ouchdroid

+0

您是动态创建此列表视图还是从布局中对其进行膨胀? – Noah

+0

我正在动态创建它。 – Ouchdroid

1

将ListView控件的另一布局设置内扩大到充满整个屏幕。

LinearLayout适用于此目的。

事情是这样的:

<LinearLayout android:layout_height="match_parent" 
      android:layout_width="match_parent" > 
    <ListView android:layout_height="match_parent" 
       android:layout_width="match_parent" > 
     ... 
    </ListView> 
</LinearLayout> 

这应该填补的LinearLayout到屏幕的底部。您可以使用此行为来控制View的外观。

希望这会有所帮助!

+0

将一个视图滚动到另一个滚动视图内,即'ScrollView'内的'ListView'不是一个好主意。 – Squonk

+0

好点,我改变了答案来反映这一点。 – Codeman

+0

我试过这个。如果我没有给它一个固定的高度,即使使用重量,这个ListView占用所有可用空间(这是有道理的,因此我试图让页脚方法起作用。) – Ouchdroid

0

试试这个,告诉我,如果它的工作原理:

  • 把在一个父从两种布局(例如:线性布局)
  • 对于ListView控件:android:layout_hight="wrap_content"
  • 对于页脚:android:layout_hight="fill_parent"
+0

ListView似乎总是使用fill_parent,如果一个固定的高度没有指定,wrap_content没有效果(这是有道理的,因此我试图让页脚方法有效。) – Ouchdroid