所以我在 Play 商店中有一个教程应用程序。
在教程 Activity 中,我只是在 scrollview
中有一个 textview
。 textview
很大,可能包含超过 5000 个字符。我想为自动滚动添加一个选项,因为滚动太多会磨伤我的手指,而且我认为用户可能也会有同样的感觉,因为我收到了一些关于此功能的请求。
再一次,我希望用户点击菜单按钮,单击“自动滚动”选项,然后文本应该开始平滑滚动,从它所在的位置一直滚动到最后。
我发现了这个:
public void scrollRight(final ScrollView h){
new CountDownTimer(10000, 25) {
public void onTick(long millisUntilFinished) {
h.scrollBy(1,0);
}
public void onFinish() {
}
}.start();
}
但我对此有一些疑问。这会让用户界面保持 react 吗?我的意思是,即使它是自动滚动的,我也希望用户能够通过随心所欲地向上或向下移动,它仍然是自动滚动的。
此外,这在某些设备上可能会有点抖动,如何使滚动平滑?
上面它运行十秒,但我需要它无限期地运行。有没有办法计算滚动所需的最长时间?或者简单地使用一个大数字也同样有效?比如说 100 万毫秒?
最后我会让用户设置滚动速度。但我认为,一旦我掌握了基本的自动滚动功能,这将很容易。
最佳答案
这与我尝试过的非常相似,但我是使用处理程序完成的(它可以运行任意长的时间)。
我写的原帖是here .
关于允许用户交互,您可以在用户触摸时临时禁用自动滚动,并在用户停止后重新启用(可能使用 setOnTouchListener)。
关于android - 在 ScrollView 中创建类似学分的平滑滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20802949/