在列表视图上应用平滑滚动

时间:2013-02-28 10:54:14

标签: android android-listview android-animation smooth-scrolling

我正在关注此link的答案,以便在屏幕上一次跨越列表视图的一项。它对我有用,但项目向上移动并适合屏幕的滚动和动画不能正常工作。

我搜索并发现方法 setSelectionFromTop 导致此问题。

但是如果我使用 smoothScrollToPosition 那么我的要求是在屏幕上放置一个项目我没有实现。

请帮我解决这个问题。为了实现这两个目标,我该怎么做

  1. 一次在屏幕上显示列表视图的一项
  2. 滚动应该顺利进行

1 个答案:

答案 0 :(得分:0)

首先,要一次只适合屏幕上的一个项目,您需要设置每个项目的高度以匹配ListView的高度。

public View getView(int position, View convertView, ViewGroup parent) {
    ...
    int totalHeight = listView.getHeight();
    int rowHeight = totalHeight / getCount();
    // Set the row height for each of the rows
    ...

一次只显示一个项目,使用setSelectionFromTop()或smoothScrollToPosition(),结果会相同。所以你现在可以使用smoothScrollToPosition()。

另一种方法是尝试设置选择。

listView.setSelection(position)
listView.setSelectionAfterHeaderView()

setSelectionAfterHeaderView会将ListView滚动到正确的位置。

希望这有帮助。