【发布时间】:2016-09-20 02:11:41
【问题描述】:
我完成了顶部分页喜欢
messagesContainer.setOnScrollListener(new OnScrollListener() {
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
if (visibleItemCount == totalItemCount){
java.lang.System.out.println("too little items to use a ScrollView!");
} else {
if ((firstVisibleItem + visibleItemCount) == totalItemCount) {
//Log.e("bottomPosition", "bottomPosition");
}else if (firstVisibleItem == 0) {
Log.e("topPosition", "topPosition");
index = messagesContainer.getLastVisiblePosition();
View v = messagesContainer.getChildAt(messagesContainer.getHeaderViewsCount());
top = (v == null) ? 0 : v.getTop();
if(rechedTopPosition != null){
rechedTopPosition = null;
Log.e("pageNoForVolUrl", pageNoForVolUrl+"");
getPrevChatVolley();
}
}
}
}
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
//Log.e("a", "scrolling stopped...");
}
}
});
for(int i = 0; i < rowsArray.length() ; i++){
JSONObject singleObj = rowsArray.getJSONObject(i);
JSONObject valueObj = singleObj.getJSONObject("value");
String commentId = valueObj.getString("_id");
String textMessage = valueObj.getString("body");
ChatMessageItems chatMessage = new ChatMessageItems();
chatMessage.setId(122);//dummy
chatMessage.setMessageId(commentId);
chatMessage.setMessage(textMessage);
if (fromUserId.equals("384")) {
chatMessage.setMe(false); // False = right side, True = left side
} else {
chatMessage.setMe(true);
}
itemsAdapter.insert(chatMessage, 0);
}
rechedTopPosition = "fulFilled";
messagesContainer.setSelectionFromTop(index, top);
<ListView
android:id="@+id/messagesContainer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="@null"
android:stackFromBottom="true"
android:listSelector="@android:color/transparent" />
通过使用此代码,我可以在顶部添加列表视图项目,但它不会保持上次查看的位置
例如:
我最初的 listView 是这样的
----
15
16
17
18
19
20
当我滚动到 15(顶部)位置时,它会将所有项目加载到顶部,但不会保持上次查看的 15 项目位置。它在更新 listView 后显示其他项目。所以,我想在更新顶部位置的项目后保持上次查看的位置。请给我任何想法......谢谢你
【问题讨论】:
标签: android listview pagination listviewitem