我正在按照此链接上的答案在屏幕上一次跨越一项列表视图。它对我有用,但是项目向上移动并适合屏幕的滚动和动画运行不顺畅。
我搜索并发现setSelectionFromTop方法导致了这种情况。
但是,如果我使用smoothScrollToPosition,那么我无法满足在屏幕上放置一个项目的要求。
请帮我解决这个问题。我应该做什么才能实现两者
- 在屏幕上一次适合一项列表视图
- 滚动应该流畅
我正在按照此链接上的答案在屏幕上一次跨越一项列表视图。它对我有用,但是项目向上移动并适合屏幕的滚动和动画运行不顺畅。
我搜索并发现setSelectionFromTop方法导致了这种情况。
但是,如果我使用smoothScrollToPosition,那么我无法满足在屏幕上放置一个项目的要求。
请帮我解决这个问题。我应该做什么才能实现两者
首先,要一次只在屏幕上显示一个项目,您需要将每个项目的高度设置为与 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 滚动到正确的位置。
希望这可以帮助。