2014-10-22 25 views
-1

我在ListView中有10个项目。 有时我不希望用户能够看到第一个列表项目。 所以第二个应该像第一个。Android:ListView,最小滚动位置

如何防止用户滚动到第一项? 或者也许有更好的解决方案或现成的API来做到这一点?

PS:HeaderView不是为我工作

+0

downvote是什么原因? – Jim 2014-10-24 09:25:22

回答

1

最好的解决办法是简单地从列表中删除(临时)项目(或者你正在使用哪个集合),然后重新填写ListView控件:

listView.notifyDataSetChanged(); 

你可以做的另一件事是返回一个空的观点时,你的“位置== 0”,这样的第一个项目将不会显示你还可以在条件在这里所说的“notifyDataSetChanged()”方法会改变。

+0

为什么这是“最佳解决方案”? – 2014-10-22 10:06:19

+0

简单,有效,很难打破你的代码。我也没有看到任何其他简单的方法。对于像这个imho这样简单的事情,使用监听器是非常复杂的。 – Squeazer 2014-10-22 10:16:18

+0

是的,它很简单,是的它是有效的。但是,您会记得getView对所有可见的视图不必要的。如果您在适配器上下载图像,那么这不是“最佳解决方案”。到目前为止。 – 2014-10-22 10:17:55

1

该代码将通过选择列表中的第二项来阻止第一项被查看。

listView.setOnScrollListener(new AbsListView.OnScrollListener() { 
     @Override 
     public void onScrollStateChanged(AbsListView absListView, int i) { 

     } 

     @Override 
     public void onScroll(AbsListView absListView, int i, int i2, int i3) { 
      if (i == 0) 
       absListView.setSelection(1); 
     } 
    });