我创建了一个滚动的textview,并且能够添加文本并滚动就好了。问题是,我正在尝试以定时间隔添加文本,并且用户可以通过点击屏幕底部的两个按钮之一来调整间隔。一切都已到位,但不管我做什么,我只能让它在整个持续时间后立即显示所有文本。假设我试图每半秒添加一次文本,持续十秒钟。运行它会导致十秒没有任何结果,然后一切都会显示出来。我已尝试使用/ while循环计数器并通过系统时间跟踪。不。递归会立即打击堆栈,这并不令人意外。使用wait()或Thread.sleep()不起作用,无论如何都不是理想的,因为按钮需要始终处于活动状态。在私有内部类中创建单独的线程不起作用,因为您无法触摸在另一个线程中创建的视图。尝试在单独的线程中创建自定义视图时,由于我无法理解的原因而拒绝工作。
我该如何做到这一点,以便实时添加每个条目?
答案 0 :(得分:0)
在我的情况下,它适用于自动滚动以及一个Timer对象
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++);
}
};