ListView
に新しいアイテムを追加して の上部に表示するのに苦労していListView
ます。ただし、新しいアイテムがに追加されるとListView
、現在のアイテムが表示されたままになり、新しいアイテムがその上に追加されます。
その趣旨で、私はここから解決策に従いました: https://stackoverflow.com/a/3035521/450534そしてそれもうまくいかなかったとき、私は少し実験を始めました.
また、言及する価値があるのは、Chris Banes による Pull to Refresh ライブラリを使用していることです。
不思議なことに、paged
の最後の項目の下にデータを追加するとListView
、すべてうまくいきます。しかし、なぜ新しいアイテムが現在のアイテムの上に配置されず、現在の位置を維持しないのか、私は困惑しています。これは私がこれまでに行ったことです( でonPostExecute()
):
// GET THE CURRENT LISTVIEW POSITION (USED TO MAINTAIN SCROLL POSITION)
int currentPosition = actualListView.getFirstVisiblePosition();
Log.e("POSITION", String.valueOf(currentPosition));
View v = actualListView.getChildAt(0);
int top = (v == null) ? 0 : v.getTop();
Log.e("TOP", String.valueOf(top));
/***** APPEND NEW DATA TO THE ADAPTER AND THE LISTVIEW *****/
// CAST THE ADAPTER (AGAIN)
adapter = new NewsFeedAdapter(getActivity(), arrFeeds);
// SET THE ADAPTER TO THE LISTVIEW
actualListView.setAdapter(adapter);
// SET THE SCROLL POSITION
actualListView.setSelectionFromTop(currentPosition, top);
lv.onRefreshComplete();
これは の始まりであり、ListView
新しいアイテムを上部 (この上) に追加した後も表示されるはずです。上にいくつの新しいフィードがあるかを示す小さなレイアウトを表示する予定です。Facebookアプリのような何かが現在行われています。
ただし、新しいアイテムは、ListView
既存のアイテムの上ではなく、下に追加されます。
私が見逃した明らかなものはありますか?さらにコードを追加する必要がある場合は、お知らせください。すぐに追加します。