#java #android #android-recyclerview #android-linearlayout #smooth-scrolling
#java #Android #android-recyclerview #android-linearlayout #плавная прокрутка
Вопрос:
Вот как выглядит мое приложение
У меня есть подавленный по горизонтали recyclerview, и как только пользователь нажимает на ответ, он плавно переходит к следующему, хотя я хотел предотвратить щелчки, пока плавная прокрутка все еще продолжается
Я использовал обработчик, и у меня было много попыток и ошибок, пока я не заставил его работать на телефонах,
однако это непрактично и не работает одинаково для каждого телефона
public void setSmoothScroller(final float speed){
smoothScroller = new LinearSmoothScroller(getApplicationContext()) {
private final float SPEED = speed;
@Override
protected float calculateSpeedPerPixel(DisplayMetrics displayMetrics) {
return SPEED / displayMetrics.densityDpi;
}
};
}
это может быть сложно объяснить, но все, что мне нужно, это вместо того, чтобы использовать обработчики для повторного включения касания, есть ли способ заставить его автоматически выполнять функцию при достижении определенной позиции
@Override
public void onAnswered(final int position) {
if (answered < bank){
handler.postDelayed(new Runnable() {
@Override
public void run() {
scrollingState = true;
recyclerView.suppressLayout(true);
setSmoothScroller(300f);
smoothScroller.setTargetPosition(position 1);
layoutManager.startSmoothScroll(smoothScroller);
}
}, 1000);
handler.postDelayed(new Runnable() {
@Override
public void run() {
enableTouch();
}
}, 3150);
}
}
Комментарии:
1. пожалуйста, загрузите соответствующий код, как вы реализуете плавную прокрутку
2. я только что отредактировал это, посмотрите, пожалуйста, мне жаль, что я не смог предоставить больше кода, но это потому, что это действительно большой проект
3. используйте
Smoothscrolltoposition
для плавной прокрутки