Android中的Scroller類可以實現平滑滾動效果。下面是一個簡單的示例代碼,演示如何使用Scroller類實現平滑滾動:
public class SmoothScrollActivity extends AppCompatActivity {
private TextView textView;
private Button scrollButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_smooth_scroll);
textView = findViewById(R.id.text_view);
scrollButton = findViewById(R.id.scroll_button);
scrollButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
smoothScrollTo(textView, 0, 0, 1000);
}
});
}
private void smoothScrollTo(View targetView, int x, int y, int duration) {
Scroller scroller = new Scroller(this);
scroller.startScroll(targetView.getScrollX(), targetView.getScrollY(), x, y, duration);
targetView.invalidate();
handler.post(new Runnable() {
@Override
public void run() {
if (scroller.computeScrollOffset()) {
targetView.scrollTo(scroller.getCurrX(), scroller.getCurrY());
targetView.postInvalidate();
handler.post(this);
}
}
});
}
}
在上面的代碼中,我們首先獲取到要滾動的目標View,然后創建一個Scroller對象,并使用startScroll方法來指定滾動的起始位置、終點位置和滾動時間。接著使用Handler來循環計算當前的滾動位置,并通過scrollTo方法實現平滑滾動效果。最后在按鈕的點擊事件中調用smoothScrollTo方法即可實現平滑滾動。