【问题标题】:Stop Listivew from scrolling after add new items添加新项目后停止 Listview 滚动
【发布时间】:2017-11-11 22:09:32
【问题描述】:

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

我该如何解决这个问题?我一直在 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);

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

【问题讨论】:

    标签: java android listview scroll


    【解决方案1】:

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

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

    【讨论】:

    • 嗨,我需要我目前拥有的代码吗?还是只添加 android:transcriptMode="normal" 就可以了?
    猜你喜欢
    • 2012-04-08
    • 2014-07-14
    • 1970-01-01
    • 2018-06-08
    • 1970-01-01
    • 1970-01-01
    • 2011-09-16
    • 2021-02-07
    • 1970-01-01
    相关资源
    最近更新 更多