5

カスタム スクロール動作を実行できるように、Horizo​​ntalScrollView をサブクラス化しましたが、smoothScrollTo が常に起動するとは限らないことがわかりました。次のコードを使用して、この問題を回避する必要がありました。

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

これにより、 scrollTo が毎回機能するため、 SmoothScrollTo が機能しない場合でも、スクロールが実際に行われるようになります。なぜこうなった?毎回 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 に答える