Добавление прокрутки текста с шагом по времени

Я создал прокручиваемое текстовое представление и смог добавить текст и прокрутить очень хорошо. Дело в том, что я пытаюсь добавить текст через определенные промежутки времени, и пользователь может настроить указанный интервал, нажав одну из двух кнопок в нижней части экрана. Все на месте, но что бы я ни делал, я могу заставить его отображать весь текст сразу после всей продолжительности. Скажем, я пытаюсь добавить текст каждые полсекунды в течение десяти секунд. Запуск его ничего не дает в течение десяти секунд, а затем все появляется. Я пробовал / пока циклы со счетчиками и отслеживания по системному времени. Нету. Рекурсия мгновенно уносит стек, что не было большой неожиданностью. Использование wait() или Thread.sleep() не работает и в любом случае не будет идеальным, так как кнопки должны постоянно работать. Создание отдельного потока в закрытом внутреннем классе не сработало, так как нельзя касаться представлений, созданных в другом потоке. Попытка создать пользовательский вид в отдельном потоке не сработала по причинам, которые я пока не могу понять.

Как, черт возьми, я бы сделал это, чтобы каждая запись добавлялась в реальном времени?

1 ответ

В моем случае это прекрасно работает для автопрокрутки вместе с одним объектом таймера

timer=new Timer();
scroll.setSmoothScrollingEnabled(true);
scroll.pageScroll(ScrollView.FOCUS_DOWN);
scroll.smoothScrollTo(0, text.getBaseline());
x=text.getBaseline();
Toast.makeText(scoruby.this,"number"+x++, Toast.LENGTH_SHORT).show();

timer.schedule(new TimerTask() {

@Override
public void run() {
    TimerMethod();


}
}, 0,1000);
}
private void TimerMethod()
{
//This method is called directly by the timer
//and runs in the same thread as the timer.

//We call the method that will work with the UI
//through the runOnUiThread method.
this.runOnUiThread(Timer_Tick);
}

private Runnable Timer_Tick = new Runnable() {
public void run() {
    x+=5;
    scroll.smoothScrollTo(0, x++);  



}
};
Другие вопросы по тегам