java - Android:Viewpager OnPageChangeListener onpageselected 干扰幻灯片动画

标签 java android listview android-fragments android-viewpager

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

我使用事件 onpageselected in a viewpager 来执行一个函数。此功能依赖于网络,因此可能需要一些时间。但是幻灯片动画看起来很慢。

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: where does the return value of doInBackground() go?

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

关于java - Android:Viewpager OnPageChangeListener onpageselected 干扰幻灯片动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21320214/

相关文章:

android - 我可以在 android 的 ListView Activity 中有多个列表吗

java - 如何查找远程系统 MAC 地址

java - Android自定义状态通知 View 高度

android - 有谁知道 name youtube 应用程序包在 android 中?

c# - Int 到字符串 : cannot convert from 'method group' to 'string'

android - ListView 水平滑动手势

java - 数据未添加到链表并正确显示。为什么?

java - 不使用 Maven 运行简单的 Spring 批处理作业?

java - scala Enum 中的非静态方法

android - 如何从不扩展 Activity 的类中使用 setContentView(int)