ListViewの先頭にアイテムを追加する

先頭に追加

先頭に追加するにはinsertを使うことで出来る。insertだとindexも選べるので0を指定すると先頭に追加できる。

mAdapter.insert(object, 0);

でもがくっとする

ListViewを見ている最中に先頭に追加すると追加されたView分Scrollがずれるので追加した瞬間にがくっとしてしまう。これは追加した瞬間に再描画しているからなので、再描画を止めれば良い。

mAdapter.setNotifyOnChange(false);

このままにしておくと先頭に行った時に表示されないので、先頭に行ったら再描画を再起動するようにする。

    @Override
    public void onScroll(AbsListView absListView, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
        super.onScroll(absListView, firstVisibleItem, visibleItemCount, totalItemCount);

        if(先頭かどうかの判定) {
            mAdapter.setNotifyOnChange(true);
            mListAdapter.notifyDataSetChanged();
        }

まとめ

こんな感じで出来ると思う。一番下にいったら自動で読み込むようにしている場合も同じようにsetNotifyOnChange(true)をやるかnotifyDataSetChanged()をやらないといけないのでご注意を。