Я хочу установить автоматическую прокрутку для каждого EditText (VerifiedEditText в моем случае), который у меня есть.Я сделал это таким образом, но я не думаю, что это так, как нужно (выглядит слишком сложно, грязно и слишком долго), не могли бы вы порекомендовать мне сделать это в любом случае проще?Я все еще учусь сам, поэтому объяснение приложенному коду было бы очень полезно.Спасибо
@Override
public void onFocusScroll() {
final ScrollView mScrollView;
mScrollView = (ScrollView) rootView.findViewById(R.id.register_scroll);
final VerifiedEditText editText0 = (VerifiedEditText) rootView.findViewById(R.id.register_ticket);
final VerifiedEditText editText1 = (VerifiedEditText) rootView.findViewById(R.id.register_sektor);
final VerifiedEditText editText2 = (VerifiedEditText) rootView.findViewById(R.id.register_row);
final VerifiedEditText editText3 = (VerifiedEditText) rootView.findViewById(R.id.register_seat);
editText0.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
mScrollView.post(new Runnable() {
public void run() {
mScrollView.smoothScrollTo(0, mScrollView.getTop());
}
});
}
}
});
editText1.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
mScrollView.post(new Runnable() {
@Override
public void run() {
mScrollView.smoothScrollTo(0, mScrollView.getBottom());
}
});
}
}
});
editText2.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
mScrollView.post(new Runnable() {
@Override
public void run() {
mScrollView.smoothScrollTo(0, mScrollView.getBottom());
}
});
}
}
});
editText3.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
mScrollView.post(new Runnable() {
@Override
public void run() {
mScrollView.smoothScrollTo(0, mScrollView.getBottom());
}
});
}
}
});
}