2014-10-12 53 views
0

我想是隱藏第一位置創建列表Android的ListView的隱藏位置0,直到滾動

但如果用戶滾動列表最多顯示隱藏的項目

我想這隱藏時創建列表後的第一個項目,但有些時候列表只是有兩個項目,所以它不滾動我怎麼能實現呢?

listview.post(new Runnable() { 
    @Override 
    public void run() { 
     listview.setSelection(1); 
    } 
}); 

該列表至少需要行。

+0

當'列表項總數高度'小於'listview'的高度時,它如何滾動。您需要爲此選擇其他邏輯,或者將高度降低到小於一個元素的高度。我更喜歡早於以後的 – Panther 2014-10-12 08:19:13

+0

,您可以將第一項作爲標題,然後增加/減少標題的高度。 – VinceStyling 2014-10-13 03:28:37

回答

0

你可以嘗試的一件事是跳過適配器中的第一個元素,當滾動ListView時,用新元素(包括第一項)切換舊項。例如:

final List<String> items = new ArrayList<String>(); 

List<String> itemsFirstSkipped = items.subList(1, items.size()-1); 

final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
     android.R.layout.simple_list_item_1, android.R.id.text1, 
     itemsFirstSkipped); 
listView.setAdapter(adapter); 
listView.setOnScrollListener(new AbsListView.OnScrollListener() { 
    @Override 
    public void onScrollStateChanged(AbsListView view, int scrollState) { 

    } 

    @Override 
    public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { 
     // Make sure at least 1 item is scrolled 
     if (firstVisibleItem>0) { 
      adapter.clear(); 
      adapter.addAll(items); 
      // notifyDataSetChanged is called by default 
     } 
    } 
});