2016-08-30 15 views
0

私はスクロールビューで自動的にスクロールするためにアニメーションを作成しようとしています。ObjectAnimatorの期間が尊重されていません

LinearLayout linearLayout = (LinearLayout) scrollView.getChildAt(0); 
// linearLayout.getHeight() == 540 
animScroll = ObjectAnimator.ofInt(scrollView, "scrollY", linearLayout.getHeight()); 

// animationDurationLong == 154000 
animScroll.setDuration(animationDurationLong); 
animScroll.setInterpolator(new LinearInterpolator()); 

animScroll.start(); 

私のアニメーションが完全に働いている、私は一番下に私のscrollviewのコンテンツの上からスクロールするが、私は96秒でそれを行う、代わりの期間に設定された154秒の。

誰でも知っていますか? 2つのデバイスで試した自分の携帯電話のデベロッパー設定を確認しても、同じ問題があります。

+0

ofInt' 'の最後のparamは間違っている、あなたが必要です:'コンテンツの高さを - コンテナheight'を – pskink

+0

あなたは正しいです、ありがとうpskink。答えを投稿して答えをつけることができますか? – Aximem

答えて

1

ターゲット"scrollY"は(ofIntの最後のparam)は、おそらく間違っている、あなたはこのようなものが必要:

height_of_content - height_of_container 
+0

ありがとうpskink、私の例では、私はした:animScroll = ObjectAnimator.ofInt(scrollView、 "scrollY"、linearLayout.getHeight() - scrollView.getHeight());それは今働きます! – Aximem

+0

これでアニメーションが早すぎるのではありません...もちろん、<0 ;-)なら準備してください – pskink