androidandroid-listviewsimplecursoradapterandroid-cursor

Android ListView : How to keep the ListView at the top when its content changes?


I have a view that contains a ListView which is bound to a cursor adapter. When The cursor content change I want to keep the ListView at the top then in my custom cursor adapter I added :

@Override
protected void onContentChanged() {
    // ...
    myListView.scrollTo(0, 0);
}

but this doesn't work. Then I read somewhere to queue this action like this :

myListView.post(new Runnable() {
    public void run() {
        myListView.scrollTo(0, 0);
    }
});

but this doesn't work either.

How can I keep the ListView at the top when its content changes?

EDIT:

Just for try, I added a button and called scrollTo() in its onClickListener and it didn't work! What am I missing ?


Solution

  • Instead of scrollTo, try setSelection(0) to get to the top position of list view.