Android ViewPager自动滑动 [英] Android viewpager automatic sliding

查看:77
本文介绍了Android ViewPager自动滑动的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何处理Viewpager页面的自动滑动以及手动滑动即在viewpager中有一组10页,每张幻灯片在3秒后滑动,但问题是当用户滑动页面时,它会移回到序列页面,这是我需要的.1>如果用户连续滑动两个页面,则不应返回.2>在用户滑动页面时,计时器应暂停,并且计时器应从按住该页面的屏幕重新启动.代码是

How to handle automatic swiping of viewpager pages together with manual swipe i.e a set of 10 pages are there in viewpager each slides after 3 seconds but problem is when user swipes the page it moves back to sequence page what i need is following. 1>if user swipes two consecutive pages than it should not go back. 2>timer should paused when user is swiping the pages and timer should restart from screen holding the page. the code is as

@Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.ten);
        timer = new Timer();


viewPager.setAdapter(adapter);

        viewPager.setCurrentItem(0);

        // Timer for auto sliding

        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        if (count <= alQuestion.size()) {
                            viewPager.setCurrentItem(count, true);
                            count++;
                        } else {
                            viewPager.setCurrentItem(count);
                        }
                    }
                });
            }
        }, 500, 3000);

推荐答案

我最近遇到了同样的问题,并通过编写下面的函数得到了解决.

I recently faced the same problem, and got solved by writing below function.

public void autoSlider(final ViewPager viewPager) {

    rr = new Runnable() {
        public void run() {
            int pos = viewPager.getCurrentItem();
            if(pos > i && pos != slidingImages.length - 1){
                i = pos;
                i++;
                        }
            else if(pos < (i-1)){
                i = pos;
                i++;
            }
            viewPager.setCurrentItem(i, true);
            i++;
            if (i >= slidingImages.length)
                i = 0;
            autoSlider(viewPager);
        }};
    handler.postDelayed(rr, 3000);
}

希望这会对您有所帮助.

Hope this will help you.

这篇关于Android ViewPager自动滑动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆