我正在关注此link的答案,以便在屏幕上一次跨越列表视图的一项。它对我有用,但项目向上移动并适合屏幕的滚动和动画不能正常工作。
我搜索并发现方法 setSelectionFromTop 导致此问题。
但是如果我使用 smoothScrollToPosition 那么我的要求是在屏幕上放置一个项目我没有实现。
请帮我解决这个问题。为了实现这两个目标,我该怎么做
答案 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滚动到正确的位置。
希望这有帮助。