5

我已经将 Horizo​​ntalScrollView 子类化,以便我可以有一些自定义滚动行为,但发现 smoothScrollTo 并不总是触发。我不得不使用以下代码解决这个问题:

smoothScrollTo(x, y);
scrollTo(x, y);

即使 smoothScrollTo 不起作用,这也可以确保滚动实际完成,因为 scrollTo 每次都有效。为什么会这样?我怎样才能让 smoothScrollTo 每次都能工作?

4

2 回答 2

5

尝试这个:

mScrollView.post(new Runnable() {
        @Override
        public void run() {
            mScrollView.smoothScrollTo(x, y);
        }
    });
于 2014-05-27T14:23:36.310 回答
0

以下代码将起作用:

            final int scrollposition = Math.round(hr/24.0f * 1440f);

            final ScrollView sv = (ScrollView)findViewById(R.id.graphScrollView);
            //sv.smoothScrollTo(0, scrollposition);

            sv.post(new Runnable() {
                @Override
                public void run() {
                    sv.smoothScrollTo(0, scrollposition);
                }
            });

原因: 在运行底层代码之前,它会等待滚动视图发布。

于 2015-01-27T12:48:28.513 回答