ListView的最后一项填充可用空间

时间:2014-04-02 13:42:21

标签: android listview

我有一个ListView,占屏幕高度的30%到100%(可以滚动)。我希望这个ListView的最后一个元素具有尽可能多的可用高度。此外 - 当没有其他项目时 - 它仍然必须是可见的

实施例: 如果ListView(没有最后一个元素)占用屏幕的30%,那么最后一个元素应该占据屏幕的70%。

如果ListView占用100%(并且你必须向下滚动),那么最后一个元素应该具有与其他项目一样多的高度。

我该如何实现这种行为?

1 个答案:

答案 0 :(得分:3)

我认为这不是ListView的默认行为,我不确定你是否可以做你的建议(至少不容易)。

ListView的常见行为是将其维度分布到其布局中定义的维度。这意味着行将具有最小的高度/宽度,但之后将启用滚动并且项目的高度将相等。

您可能尝试实现此目的的一种方法是扩展ArrayAdapter(从您的问题来看,如果您已经在做,并不清楚),并在{{1}中实施该行为方法。

getView()没有ArrayAdapter方法,因此您需要以某种方式跟踪列表中的最后一项:保留要显示的项目的副本或者只是定义一个公共方法,该方法将从您的getLastItem()Activity调用,告诉他们它是最后一项,并在您的Fragment方法中执行以下操作:< / p>

getView()

要知道布局留下的空间,您可以获得显示高度并减去@Override public View getView(final int position, View convertView, final ViewGroup parent) { // convertView references to the current row being rendered if (convertView == myLastItem) convertView.setHeight(myLastRowsHeight); ... } 的高度减去最后一行减去您可能拥有的任何其他ListView的高度。相同的布局。

View