I\'ve got a custom Adapter for a ListView setup and working ok. On a button click something is changed in the underlying data, so a notifyDataSetChanged is required to refre
Use the post() method to wait for the list to finish updating after you call notifyDataSetChanged():
post()
notifyDataSetChanged()
adapter.notifyDataSetChanged(); list.post( new Runnable() { @Override public void run() { //call smooth scroll } });