Ho avuto lo stesso problema esatto, provare questo ha funzionato perfettamente per me. Si sta eseguendo l'override del metodo notifyDataSetChanged(). Lo fai nella tua classe Adapter. Basta copiare il codice che ho postato e sostituire la linea in cui setSelection() con quello che mai hai bisogno di fare.
@Override
public void notifyDataSetChanged()
{
super.notifyDataSetChanged();
parentGlobal.setSelection(this.getCount() - 1); //This is how we start Activity fully scrolled to bottom
}
Detto questo, nel caso in cui vi state chiedendo, "parentGlobal" è la ListView che ho impostato l'adattatore alla mia attività. Nel costruttore dell'adapter, ho passato in ListView e l'ho reso "globale". Mi scuso se "globale" non è un termine Java, vengo da un mondo C++.
// va in attività:
lv_main = (ListView) findViewById(R.id.listView_conversation);
adapter_main = new Adapter_Conversation(ConversationActivity.this, R.layout.layout_list_conversation,
list_main_UI, lv_main, main_list_item_margin_px);
lv_main.setAdapter(adapter_main);
// va in adattatore
public Adapter_Conversation(AppCompatActivity activity, @LayoutRes int resource,
ArrayList<Adapter_GetSet_Conversation> list_conversation, ListView lv_main,
int item_margin_px)
qualcuno mi aiuti :( – hiepnh
Watch [questo] (http://stackoverflow.com/questions/6942582/smoothscrolltoposition-after-notifydatasetchanged-not-working-in-android) domanda possibile duplicato – grine4ka
potrebbe essere https://stackoverflow.com/a/20997828/5255006 ti aiuterà –