Для меня работало объединение ответов @ dmon's и @ waj.
Только переопределение onRequestFocusInDescendants()
прекрасно работало, когда я имел дело только с EditTexts внутри ScrollView, но когда я начал добавлять несколько типов просмотра, он не работал так хорошо.
Только переопределениеgetFocusables()
вообще не работал.
Переопределение обоих onRequestFocusInDescendants()
И getFocusables()
, кажется, прекрасно работает во всех сценариях.
public class FixedFocusScrollView extends ScrollView {
public FixedFocusScrollView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public FixedFocusScrollView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public FixedFocusScrollView(Context context) {
super(context);
}
@Override
public ArrayList<View> getFocusables(int direction) {
return new ArrayList<View>();
}
@Override
protected boolean onRequestFocusInDescendants(int direction, Rect previouslyFocusedRect) {
return true;
}
}