首页 > 解决方案 > 我想同时自动刷 3 视图寻呼机

问题描述

我试图在同一个活动上自动刷三个 ViewPager,每个 viewPager 都在一个片段内,每个 viewPager 必须循环 5 个图像,当我的计时器开始刷第一个 viewPager 时它工作正常,但是当我开始第二个时,我的应用程序崩溃并告诉孩子们已经有了父母。

所以我的问题是如何同时自动刷 3 viewPager?我尝试将 viewPager 不带片段并开始滑动它们,但应用程序崩溃并出现相同的错误,当我手动滑动它们时它也会崩溃。

java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
    at android.view.ViewGroup.addViewInner(ViewGroup.java:5161)
    at android.view.ViewGroup.addView(ViewGroup.java:4991)
    at android.support.v4.view.ViewPager.addView(ViewPager.java:1485)
    at android.view.ViewGroup.addView(ViewGroup.java:4931)
    at android.view.ViewGroup.addView(ViewGroup.java:4904)
    at appName.Data.MiddleAdapter.instantiateItem(MiddleAdapter.java:33)


// Line that crashes the app
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position)
    ImageView image = images.get(position);
    container.addView(image);
    return image;

其他 3 个视图寻呼机具有确切的行,当只有一个被激活时它工作正常。

标签: javaandroid

解决方案


在您的自定义适配器中添加此方法

@Override
public void destroyItem(ViewGroup container, int position, Object object) {
((ViewPager) container).removeView(itemView); }

推荐阅读