2016-11-16 75 views
0

ListView在添加來自Web服務的新列表後,直接進入最後一項。它並不維持其立場。一切工作正常,但我的名單是帶我到最後一個項目。 通過使用setSelectionsmoothScrollToPositionFromTop,我已經實現了這一點,但它顯示滾動動畫。我不希望這種情況發生。我已經嘗試了下面的代碼,直到現在:ListView直接進入最後一項

注意:我的列表視圖只包含textview。

listview.setSelection(position); 

listview.smoothScrollToPositionFromTop(mylastPosition,0,0); 

下面的代碼工作完美,如果列表編程(鐵桿)添加的不是獲取從web服務列表。

lv.setOnScrollListener(new AbsListView.OnScrollListener() { 
     @Override 
     public void onScrollStateChanged(AbsListView view, int scrollState) { 

     } 

     @Override 
     public void onScroll(AbsListView view, int firstVisibleItem, int firstVisibleItem, int totalItemCount) { 

      if(firstVisibleItem+firstVisibleItem>= totalCount) 
      { 
       //code for getting new list 
       loadNewDataFromWS(); 
      } 
    }); 

這是因爲我在另一個線程而不是主線程添加列表?

+0

你試圖做懶加載? –

+0

我從asyncTask獲取新列表 –

+0

當您滾動到底部時是否要加載更多項目(下一頁?)? –

回答

1

我在listview上觀看視頻時發現瞭解決方案。 和解決方案是通過將列表視圖的transcriptMode屬性設置爲disabled

android:transcriptMode = "disabled" - does not scroll 
android:transcriptMode = "normal" - scrolls to the bottom if last item is visible 
android:transcriptMode = "disabled" - always scrolls to the bottom 
相關問題