如何以所需的滚动速度自动滚动文本视图?

时间:2018-04-22 04:33:48

标签: android

我想以所需的速度滚动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缓慢滚动,以便用户可以读取每一行。 顺便说一句,我只需要垂直滚动,而不是水平滚动。 感谢

1 个答案:

答案 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();
    }
});