我有一个列表视图,显示了一个项目列表...嗯,不是所有的,但他们都在那里。而不是让用户向上/向下滚动要求和向上/向下按钮。除了如何推进ListView之外,我已经很好地处理了所有事情。假设我正在查看列表中的第3项。用户点击下一个…我想ListView前进到第4项。我在内部跟踪他们在哪个页面上进行递增/递减。我期待着找到这样的东西,但没有运气。
ListView.MoveNext();
或
ListView.Move(int);
根据布雷登的建议,我在这里尝试了公认的解决方案:Maintain/Save/Restore scroll position when returning to a ListView并且它看起来没有滚动列表....即。它停留在列表的第一个项目上。我也试过setSelection。
下面是我的代码:
public void btn_NextClick(View vw_Current)
{
//increment page count 1
i_PageTracker ++;
//advance to next record
//int x = lstvw_LiftData.getFirstVisiblePosition();
View v = lstvw_LiftData.getChildAt(0);
int top = (v == null) ? 0 : v.getTop();
lstvw_LiftData.setSelectionFromTop(i_PageTracker, top);
//lstvw_LiftData.setSelection(i_PageTracker);
}
基于弗拉基米尔的成功和我的缺乏,我想提供一些额外的信息,我认为无关紧要,但…
我扩展了SimpleAedapter并覆盖了getView。我还有一个DataBinder,用数据对象中的某些数据填充TextViews。
有趣的是,当我在加载时在DataAdapter的getView和绑定器的setViewValue中设置断点时,我们会适当地命中它们。然而,当点击下一个按钮时,我们没有击中它们,如果列表前进到下一个位置,我会预料到......嗯,我想知道......我有另一个想法......马上回来。
我想明白了......但我不知道该怎么办。我不知道自己在做什么,我开枪打了自己。我只想看到一个项目在列表中的时间,我不希望用户能够滚动。我所做的就是覆盖DataAdapter中的getCount并返回1。这似乎是答案,因为只有一个项目显示酷!但是重写getCount也意味着只有一个项目可以显示,所以我们永远不会前进……没有什么可以前进的。
所以我想知道的是。我如何让用户无法滚动并强制他们使用导航按钮。我是否处理滚动事件并返回null?
1条答案
按热度按时间rbpvctlc1#
我想明白了......但我不知道该怎么办。我不知道自己在做什么,我开枪打了自己。我只想看到一个项目在列表中的时间,我不希望用户能够滚动。我所做的就是覆盖DataAdapter中的getCount并返回1。这似乎是答案,因为只有一个项目显示酷!但是重写getCount也意味着只有一个项目可以显示,所以我们永远不会前进……没有什么可以前进的。
所以我想知道的是。我如何让用户无法滚动并强制他们使用导航按钮。我是否处理滚动事件并返回null?