2016-11-16 12 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

リストビューでビデオを見ながら解決策を見つけました。 と解決策は、リストビューの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 
関連する問題