Android smoothScrollTo不流畅

时间:2014-12-15 10:48:30

标签: android scrollview smooth-scrolling

我正在尝试滚动到ScrollView中的给定布局。我的XML基本上由一个实现各种RelativeLayout的ScrollView组成,我想以编程方式滚动到给定的一个。

我在Activity的onCreate方法中有以下代码:

// Defining my view
sv = (ScrollView)findViewById(R.id.reward_scroll_view);

// Get Layout's id from intent
Bundle extras = getIntent().getExtras();
if (extras != null) {
    idToScroll = extras.getInt("uiToScroll");
    sv.post(new Runnable() {
        public void run() {

            // Scroll to the passed element
            RelativeLayout layout = (RelativeLayout) findViewById(idToScroll);
            sv.smoothScrollTo(0, layout.getTop());
        }
    });
}

给定锚点的“自动滚动”工作正常,但没有“平滑”效果,只是原始滚动到布局。我错过了什么?

2 个答案:

答案 0 :(得分:1)

您正在覆盖post post of view。

滚动视图在UI线程或帖子

中无法顺利运行

Look at this question

答案 1 :(得分:1)

由于 Aamir 的评论,我解决了我的问题,这是我最终代码的样子:

    Bundle extras = getIntent().getExtras();
    if (extras != null) {

        // Get Layout's id from intent
        idToScroll = extras.getInt("uiToScroll");
        layout = (RelativeLayout) findViewById(idToScroll);

        // Start 1 second timer
        new CountDownTimer(1000, 20) {      
             public void onTick(long millisUntilFinished) {
                 // Nothing...
             }

             // When over, start smoothScroll
             public void onFinish() {  
                 sv.smoothScrollTo( 0, layout.getTop() );  
             }      
        }.start(); 
    }

我的视图可能需要一些延迟才能正确显示滚动效果。