添加新项目后停止Listivew滚动

时间:2017-06-09 19:31:57

标签: java android listview scroll

我正在尝试聊天,当我检查新消息时,列表视图会选择第一个项目。

我该如何解决这个问题?我一直在寻找Stack Overflow和其他论坛的另一个问题,但没有成功.. 例如:Maintain scroll position when adding to ListView with reverse endless-scrolling 目前我的代码是这样的:

int oldCount = lv.getAdapter().getCount();
View view = lv.getChildAt(0);
int pos = (view == null ? 0 : view.getBottom());

lv.setAdapter(adapter);
System.out.println("De length: " + de.length);
System.out.println(firstVisibleItem + "/" + oldCount);
for (String DE : de) {
  if (DE != null) {
    ConversaClass obj = new ConversaClass(msg[i], username, de[i], para[i]);
    adapter.add(obj);
    i++;
  }
}

//adapter.notifyDataSetChanged();
lv.setSelectionFromTop(firstVisibleItem + lv.getAdapter().getCount() - oldCount +1 , pos);

如果此代码不够,请随时提出更多要求。 谢谢!

1 个答案:

答案 0 :(得分:0)

您必须将transcriptMode设置为normal,如下所示:

<ListView
    android:id="@+id/list_messages"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:transcriptMode="normal"
    android:stackFromBottom="true">
</ListView>