繁体   English   中英

Android:Viewpager OnPageChangeListener onpageselected扰乱了幻灯片动画

[英]Android: Viewpager OnPageChangeListener onpageselected disturbs slide animation

我在这里看过一些类似的帖子,但没有合适的答案。

我使用viewpager中选择的事件onpage来执行一个函数。 此功能取决于网络,因此可能需要一些时间。 但随后幻灯片动画看起来很迟钝。

mViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int i, float v, int i2) {

            }

            @Override
            public void onPageSelected(int i) {
                makeSomeHeavyTask();
            }

            @Override
            public void onPageScrollStateChanged(int i) {

            }
        });

繁重任务:

public void makeSomeHeavyTask() {
        handler.post(new QueryRunnable());

    }

有办法解决这个问题吗? 谢谢

使用AsyncTask执行繁重的任务。 在这里查看接受的答案AsyncTask:doInBackground()的返回值在哪里?

编辑:您需要先在getView返回一个占位符。 如果getView方法必须等待线程完成,那么动画肯定会滞后。 返回的占位符稍后可用于在线程完成后进行发布。

你可以使用回调

public void onPageScrollStateChanged(int i)

而不是public void onPageSelected(int i) with

if(i == ViewPager.SCROLL_STATE_IDLE) {
    //your task
}

如果您有一个无法在其他线程上执行的任务。 这将在动画结束后调用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM