1

下午好,

我有一个显示项目列表的列表视图......虽然不是全部,但它们都在那里。而不是让用户向上/向下滚动,而是要求和向上/向下按钮。除了如何推进 ListView 之外,我的一切都处理得很好。假设我正在查看列表中的第 3 项。用户点击下一步...我想 ListView 前进到第 4 项。我在内部跟踪他们在哪个页面上进行递增/递减。我期待找到这样的东西,但没有骰子。

ListView.MoveNext();

或者

ListView.Move(int);

根据 Brayden 的建议,我在这里尝试了接受的解决方案:返回 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?

4

1 回答 1

0

我想通了....但我不知道该怎么办。看到不知道我在做什么,我自己开枪了。我只想一次在列表中看到一个项目,并且我不希望用户能够滚动。好吧,我所做的就是覆盖 DataAdapter 中的 getCount 并返回 1。这似乎是答案,因为只有一项显示很酷!但是覆盖 getCount 也意味着只有一项要显示,所以我们永远不会前进……没有什么可以前进的。

所以我想知道的是这个。如何防止用户滚动并强制他们使用导航按钮。我是否处理滚动事件并返回 null?

于 2012-05-24T13:37:13.840 回答