中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

Android Scroller如何實現平滑滾動

小樊
102
2024-07-16 03:47:44
欄目: 編程語言

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方法即可實現平滑滾動。

0
平塘县| 镇赉县| 双流县| 清丰县| 桑植县| 莱芜市| 高密市| 双柏县| 林芝县| 乌兰察布市| 乌拉特前旗| 兰西县| 凯里市| 苍溪县| 鄂尔多斯市| 沙湾县| 招远市| 伊吾县| 济宁市| 丘北县| 潮安县| 南澳县| 扶绥县| 南乐县| 长沙县| 南丹县| 金寨县| 西吉县| 博湖县| 河津市| 永清县| 乐平市| 忻州市| 察隅县| 镇赉县| 朝阳县| 织金县| 东海县| 德阳市| 镶黄旗| 全南县|