我有滾動視圖。我執行smooth-scroll.using smoothScrollBy()。它一切正常,但我想更改平滑滾動的持續時間。平滑滾動發生得非常快,用戶不知道發生了什麼。請幫助我降低平滑滾動速度?降低滾動視圖中的平滑滾動的速度
21
A
回答
1
下面是與使用scrollTo計時器的解決方案,但你也可以使用scrollBy Android: HorizontalScrollView smoothScroll animation time
-1
whichScreen = Math.max(0, Math.min(whichScreen, getBase().getDocumentModel().getPageCount()-1));
mNextScreen = whichScreen;
final int newX = whichScreen * getWidth();
final int delta = newX - getScrollX();
//scroller.startScroll(getScrollX(), 0, delta, 0, Math.abs(delta) * 2);
scroller.startScroll(getScrollX(), 0, delta, 0, Math.abs(delta));
invalidate();
10
試試下面的代碼:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
{
ValueAnimator realSmoothScrollAnimation =
ValueAnimator.ofInt(parentScrollView.getScrollY(), targetScrollY);
realSmoothScrollAnimation.setDuration(500);
realSmoothScrollAnimation.addUpdateListener(new AnimatorUpdateListener()
{
@Override
public void onAnimationUpdate(ValueAnimator animation)
{
int scrollTo = (Integer) animation.getAnimatedValue();
parentScrollView.scrollTo(0, scrollTo);
}
});
realSmoothScrollAnimation.start();
}
else
{
parentScrollView.smoothScrollTo(0, targetScrollY);
}
2
這是我如何實現平穩垂直滾動(如電影信用)。這也允許用戶上下移動滾動並允許它們在放開時繼續滾動。在我的XML中,我將我的TextView封裝在名爲「scrollView1」的ScrollView中。請享用!
final TextView tv=(TextView)findViewById(R.id.lyrics);
final ScrollView scrollView = (ScrollView) findViewById(R.id.scrollView1);
Button start = (Button) findViewById(R.id.button_start);
Button stop = (Button) findViewById(R.id.button_stop);
final Handler timerHandler = new Handler();
final Runnable timerRunnable = new Runnable() {
@Override
public void run() {
scrollView.smoothScrollBy(0,5); // 5 is how many pixels you want it to scroll vertically by
timerHandler.postDelayed(this, 10); // 10 is how many milliseconds you want this thread to run
}
};
start.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
timerHandler.postDelayed(timerRunnable, 0);
}
});
stop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
timerHandler.removeCallbacks(timerRunnable);
}
});
+0
我將如何知道滾動到底並且runnable必須關閉?如何處理這個? – AlexKost
111
相關問題
- 1. 如何降低UIScrollview的滾動速度?
- 2. 滾動視圖的平滑滾動
- 3. 如何降低UIScroll視圖的滾動速度
- 4. 如何降低Flex移動SpinnerList組件的滾動速度
- 5. 快速平滑滾動鼠標滾輪
- 6. 如何在水平滾動視圖中使用平滑滾動居中視圖
- 7. 表視圖的平滑滾動
- 8. 在列表視圖中平滑滾動
- 9. javascript滾動到視圖與平滑滾動效果的div?
- 10. 滾動速度自動滾動速度
- 11. 水平滾動視圖迅速的Xcode
- 12. 視差滾動平滑
- 13. 平滑滾動,其中每個內容以不同的速度滾動
- 14. 平滑滾動
- 15. 平滑滾動 -
- 16. 平滑滾動
- 17. 停止滾動視圖動畫時低於某個速度
- 18. 的tableview平滑滾動迅速
- 19. android水平recyclerview在垂直嵌套滾動視圖中的平滑滾動
- 20. JavaScript的「平滑滾動」不會滾動
- 21. 滾動後降低標題高度
- 22. 列表視圖不平滑滾動
- 23. 滾動視圖不是平滑滾動使用lazyloader
- 24. Android中的可滾動滑動視圖
- 25. 使用滾動視圖內的兩個列表視圖進行平滑滾動
- 26. 如何播放滾動視圖滾動時依靠滾動視圖滾動速度的聲音?
- 27. 滾動查看滾動視圖時的水平滾動
- 28. 水平滾動頁面中的水平滾動視圖
- 29. 水平滾動圖像組在啓動後滾動滾動,然後平滑
- 30. Android中的滑動菜單和水平滾動視圖
這應該被選爲答案這個問題。 +1 –
而不是使用ValueAnimator,爲什麼不使用ObjectAnimator(ValueAnimator的子類)?它使得它更容易 - 實際上是一個單線程,ObjectAnimator.ofInt(scrollView,「scrollY」,targetScrollY).setDuration(500).start(); –