2

我将列表视图的 stackFromBottom XML 属性设置为 true,因此当活动打开时,列表视图中的最后一项是可见的,而不是顶部项,这是默认设置。

但是,我希望活动打开,以便列表视图中的最后一项与屏幕顶部对齐。换句话说,在这最后一项下方应该有一个空格,它会占用剩余的空间。

我试图通过向列表视图添加页脚视图来做到这一点:

View footer = inflater.inflate(R.layout.empty_view, listview, false);
ViewGroup.LayoutParams lp = footer.getLayoutParams();
lp.height = ???;
footer.setLayoutParams(lp);
listview.addFooterView(footer);

问题是我不知道在活动的 onCreate 函数期间分配给空白页脚视图的高度。我需要知道列表视图中最后一项的高度来决定制作空白页脚视图的高度,但是最后一个列表视图项的高度不是固定数字。

如何获得最后一个列表视图项的高度?或者也许有更好的方法可以完全做到这一点?

4

1 回答 1

0

我刚刚找到了一个非常简单的解决方案:只需将您的 ListView 包装在 FrameLayout 中。显然,对齐的处理方式与其他 ViewGroup 不同。

这是我的工作代码:

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

另一种方法是删除 android:stackFromBottom 并手动进行滚动以模拟属性的行为。这将为您节省额外的层,但我不建议增加额外的复杂性。

于 2015-07-09T09:54:45.417 回答