我想以所需的速度滚动textView。就像滚动信用。我有一个大约50行的textView,我想慢慢滚动它。因此,当该活动开始时,它应该滚动10秒。我尝试过使用以下内容,但它没有用。
LinearInterpolator scrollInterpolator = new LinearInterpolator();
Scroller scroller = new Scroller(this,scrollInterpolator);
scroller.extendDuration(10000);//I thought this was 10 seconds
text1.setScroller(scroller);
我也试过以下。它需要我结束50行textView,但它不会慢慢地去那里。
scrollView.post(new Runnable() {
@RequiresApi(api = Build.VERSION_CODES.HONEYCOMB)
@Override
public void run() {
scrollView.fullScroll(ScrollView.FOCUS_DOWN);
}
});
如您所见,我已尝试使用scrollview并在textview上使用滚动条。 我希望textview缓慢滚动,以便用户可以读取每一行。 顺便说一句,我只需要垂直滚动,而不是水平滚动。 感谢
答案 0 :(得分:3)
您可以使用ObjectAnimator
顺畅滚动
final ScrollView scrollView = findViewById(R.id.scrollView);
scrollView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
scrollView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
ObjectAnimator objectAnimator = ObjectAnimator.ofInt(scrollView, "scrollY", scrollView.getChildAt(0).getHeight() - scrollView.getHeight());
objectAnimator.setDuration(10000);
objectAnimator.setInterpolator(new LinearInterpolator());
objectAnimator.start();
}
});