Advance ListView下一项/ setSelectionFromTop不工作/禁止用户滚动ListView

时间:2012-05-21 21:47:11

标签: java android listview

下午好,

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

ListView.MoveNext();

ListView.Move(int);

根据Brayden的建议,我在这里尝试了接受的解决方案: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和load的setViewValue中设置一个断点时,我们会在适当的时候点击它们。然而,当点击下一个按钮时,如果列表正在前进到下一个位置,我们就不会打它们。我想知道......我还有另一个想法....马上回来。

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

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

1 个答案:

答案 0 :(得分:0)

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

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