[英]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.