我在将新项目添加到 aListView
以显示在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
而不是现有项目上方的顶部。
我错过了什么明显的东西吗?如果您需要我添加更多代码,请告诉我,我会立即添加。