我做了一個平滑的滾動到定義的位置。如何知道滾動動畫何時結束?
smoothScrollTo(0, 1000);
此方法執行後 - 我做了幾個操作。但我想做他們 - 滾動動畫結束後。
我想檢測滾動動畫何時完成。我該怎麼做?
我做了一個平滑的滾動到定義的位置。如何知道滾動動畫何時結束?
smoothScrollTo(0, 1000);
此方法執行後 - 我做了幾個操作。但我想做他們 - 滾動動畫結束後。
我想檢測滾動動畫何時完成。我該怎麼做?
我必須做這樣的,
final ScrollView mScrollView = (ScrollView) findViewById(R.id.scrollview);
layoutSponsorBax.setVisibility(View.VISIBLE);
Timer timer = new Timer();
TimerTask task = new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
ViewGroup relativeL = (ViewGroup) mScrollView
.getChildAt(mScrollView.getChildCount() - 1);
final int sVH = mScrollView.getBottom()
- mScrollView.getTop();
View notePad = relativeL.getChildAt(2);
final int svHeight = 800;
Log.i("svHeight", "svHeight : " + svHeight);
final float duration = 2000;
ctt = new CountDownTimer((int) duration, 1) {
int temp = 0;
public void onTick(long millisUntilFinished) {
try {
Log.i("millisUntilFinished",
"millisUntilFinished : "
+ millisUntilFinished);
Log.i("Height- Temp", "Temp : " + temp);
mScrollView.scrollTo(0, temp);
temp = (int) (((svHeight) - (millisUntilFinished/duration)
* (svHeight)));
} catch (ArithmeticException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
public void onFinish() {
}
}.start();
}
});
}
};
int duration = 1400;
timer.schedule(task, duration);
請這可能是幫助你
其實我創建的解決方案。默認動畫時間爲250毫秒。 –
但你的答案其實是對的。我可以使用Timer任務來處理動畫,所以加上一個。 –
不知道,但你可以用'onScrollChanged'? [參考](http://stackoverflow.com/a/1800267/1777090) –
@PurpleDroid yeap,我可以。但也許存在更簡單的方法? :) –
確定:)不知道它然後:) –