I would edit a few things from the solution:
1.- Put smoothScroll instead of hard scrolling
2.- Reduce the delay from 1000 to 300 (enough)
OnFocusChangeListener onFocus = new OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { new Handler().postDelayed(new Runnable() { @Override public void run() { scrollView.smoothScrollTo(0, scrollView.getBottom()); } },300); } };
source share