TL;DR I have a RecyclerView of EditTexts. When the user is focused on EditText #1 and taps on EditText #2, I want EditText #2 to get focus but I don't want the ReyclerView to scroll. How can I achieve this?
I'm trying to work with a RecyclerView populated with a bunch of EditTexts. When I'm focused on one EditText and I click on another, the RecyclerView scrolls so that the second is at the top of the screen. I want to disable this auto-scrolling from the RecyclerView, but I still want the user to be able to scroll, and I still want the second EditText to be focused on so the user can start typing. How can I achieve this?
I've already tried the following solutions:
https://stackoverflow.com/a/8101614/4077294, but with a
RecyclerView.OnItemTouchListener. I calledrecyclerView.requestFocusFromTouchinonInterceptTouchEvent.- Behavior: Scrolled to the top of the tapped
EditTextall the time.
- Behavior: Scrolled to the top of the tapped
Clearing the focus from any
EditTextwhenever it was focused on, viaeditText.setOnFocusChangeListener(new OnFocusChangeListener() { @Override public void onFocusChange(View v, bool hasFocus) { if (hasFocus) { v.clearFocus(); } } });- Behavior: The keyboard never showed up, and the
RecyclerViewstill scrolled to the top.
- Behavior: The keyboard never showed up, and the
Disabling scrolling altogether as in this question is not acceptable because I still want the user to be able to scroll.