Android ListView添加项目到顶部没有列表视图滚动

参见英文答案 > Retaining position in ListView after calling notifyDataSetChanged                                    
我有一个listView,我想添加新的项目到列表视图的顶部,但我不希望列表视图滚动其内容。我希望用户在添加新项目之前查看相同的项目。

这是我如何添加新的项目到ListView:

this.commentsListViewAdapter.addRangeToTop(comments);
this.commentsListViewAdapter.notifyDataSetChanged();

这是addRangeToTop方法:

public void addRangeToTop(ArrayList<Comment> comments)
{
    for (Comment comment : comments)
    {
        this.insert(comment, 0);        
    }
}

这是我的listView:

<ListView
    android:id="@+id/CommentsListView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_above="@+id/AddCommentLayout" 
    android:stackFromBottom="true" >        
</ListView>

我想做的是在用户滚动到顶部时加载旧注释。

感谢您的帮助。

我在这里找到了解决方案Retaining position in ListView after calling notifyDataSetChanged

对不起,重复的问题。
最后的代码是:

    int index = this.commentsListView.getFirstVisiblePosition() + comments.size();
    View v = this.commentsListView.getChildAt(commentsListView.getHeaderViewsCount());
    int top = (v == null) ? 0 : v.getTop();         

    this.commentsListViewAdapter.AddRangeToTop(comments);
    this.commentsListViewAdapter.notifyDataSetChanged();    

    this.commentsListView.setSelectionFromTop(index, top);
http://stackoverflow.com/questions/15597450/android-listview-add-items-to-top-without-list-view-scroll

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:Android ListView添加项目到顶部没有列表视图滚动