Если запускаю метод softReset содержащий scrollTo(0,0)
public void softReset() {
scrollTo(0, 0);
}
внутри своего класса TableView (extends View), например по двойному тапу onDoubleTap(MotionEvent event), то все срабатывает как должно.
@Override
public boolean onDoubleTap(MotionEvent event) {
softReset();
return true;
}
Если запускаю тот же метод снаружи из MainActivity по кнопке "назад" onBackPressed(), то метод softReset запускается, но scrollTo(0,0) в нем не срабатывет, но если нажать кнопку "назад" второй раз то срабатывает.
@Override
public void onBackPressed() {
table.softReset();
}
Пробовал запускать метод дважды подряд
@Override
public void onBackPressed() {
table.softReset();
table.softReset();
}
все равно не помогает.
Никаких новых потоков я не открывал, так как приложение очень легкое. Может быть именно в этом проблема?
Добавлено 09.09 13:20 Обнаружил когда баг проявляется, а когда нет. Если один раз крутануть (onFling) и отпустить палец до остановки скроллинга, а потом нажать "назад" - то бага нет, метод scrollTo() срабатывает и все возвращается нормально. Если двигать, а потом отпустить и после этого нажать "назад" то баг есть.
Надо вызывать post():
table.post(new Runnable() {
@Override
public void run() {
table.softReset();
}
});
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости