I managed to find a solution other then repositioning my Spinner. In the EditText before the spinner, add this listener:
editTextBefore.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView textView, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_NEXT) {
hideKeyboard();
textView.clearFocus();
spinner.requestFocus();
spinner.performClick();
}
return true;
}
});
You also need to add these line to able spinner to get focus:
spinner.setFocusable(true); // can be done in XML preferrable
My hideKeyboard function was just a visual detail that I wanted to add so the keyboard get hidden:
private void hideKeyboard() {
InputMethodManager inputManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(this.getCurrentFocus().getWindowToken(),
InputMethodManager.HIDE_NOT_ALWAYS);
}
Hope I have helped in this tricky question.
The flag InputMethodManager.HIDE_NOT_ALWAYS
can be found in the documentation.