在聊天应用中,当新消息弹出时,listview有两种更新方式 另一个加载更多按钮是单击
所以我需要两种更新方式 第一个是滚动到新消息
其次是留在
点击的位置列表视图具有这些属性
<ListView
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:divider="@null"
android:fadingEdge="none"
android:fastScrollEnabled="false"
android:footerDividersEnabled="false"
android:headerDividersEnabled="false"
android:listSelector="@android:color/transparent"
android:smoothScrollbar="true"
android:stackFromBottom="true"
android:transcriptMode="normal" >
</ListView>
第一个条件工作正常 所以我需要在点击LoadMore时保持位置
public void updateWithOutScroll() {
final int position = chListView.getSelectedItemPosition();
Parcelable state = chListView.onSaveInstanceState();
ChatAdapter.notifyDataSetChanged();
chListView.onRestoreInstanceState(state);
chListView.post(new Runnable() {
@Override
public void run() {
chListView.setSelection(position);
}
});
}
这是使列表首先滚动到底部然后滚动到顶部
这有什么不对? 以及如何实现我的目标?
答案 0 :(得分:0)
我不确定我理解你的问题。如果您正在询问如何向列表视图添加更多内容,请致电:
Adapter.add(...) or Adapter.addAll(...)
然后:
Adapter.notifyDataSetChanged();
然后,listview应该只将新元素添加到底部。