2014-10-22 45 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); 
     } 
    });