[RESOLVIDO] Atualizar listView sem perder o foco

2 respostas
A

Fala galera… blz…?!
estou fazendo uma pequena aplicação para Android que lista uns produtos com opção de alterar a quantidade do produto.
Tenho um listview que é populado desta forma:

Quando eu clico no produto para alterar, é chamado uma outra Activity (AlterarMedidaActivity), eu altero e volta para a Activity anterior (ListViewActivity).
Tudo isso faz corretamente, mas o que eu preciso é que quando voltar para a minha ListViewActivity, o foco da tela continue na mesma posição que estava
mas com a lista atualizada.
Eu consigo fazer um ou outro, mas não os dois juntos…rsrs ou atualizo a lista e perde o foco ou volta no foco com a lista desatualizada…
Alguém tem uma dica…?!

abraco

2 Respostas

F

Praticamente nunca use listActivity, mas creio que tenha mesmo comportamento que uma listView, então pode ser que dê certo :)

private int index= 0;
private int top = 0;

@Override
protected void onPause(){
index = getListView().getFirstVisiblePosition();
View v = getListView().getChildAt(0);
top = (v == null) ? 0 : v.getTop();
}

@Override
protected void onResume(){
getListView().setSelectionFromTop(index, top);
}
So ListView.getFirstVisiblePosition() returns the top visible list item. But this item may be partially scrolled out of view, and if you want to restore the exact scroll position of the list you need to get this offset. So ListView.getChildAt(0) returns the View for the top list item, and then View.getTop() returns its relative offset from the top of the ListView. Then, to restore the ListView's scroll position, we call ListView.setSelectionFromTop() with the index of the item we want and an offset to position its top edge from the top of the ListView.

Fonte: http://stackoverflow.com/questions/3014089/maintain-save-restore-scroll-position-when-returning-to-a-listview

A

valeo fabriciov
era bem isso que eu precisava…

Criado 20 de maio de 2013
Ultima resposta 20 de mai. de 2013
Respostas 2
Participantes 2