Bug 1354973 - Remove view before add to new ViewGroup, r=sebastian draft
authormaliu <max@mxli.us>
Mon, 10 Apr 2017 11:48:59 +0800
changeset 563448 1bda60c62fb861c86cac1d5eb43887771fa1b6ea
parent 560035 b5b5dbed1c409d96aa6b97f2036cd66312fc45ad
child 624472 744f395235465f885c1da77255a5015cacd28c36
push id54304
push userbmo:max@mxli.us
push dateMon, 17 Apr 2017 02:15:24 +0000
reviewerssebastian
bugs1354973
milestone55.0a1
Bug 1354973 - Remove view before add to new ViewGroup, r=sebastian MozReview-Commit-ID: 1Xdlbss6SVO
mobile/android/base/java/org/mozilla/gecko/home/activitystream/topsites/TopSitesPagerAdapter.java
--- a/mobile/android/base/java/org/mozilla/gecko/home/activitystream/topsites/TopSitesPagerAdapter.java
+++ b/mobile/android/base/java/org/mozilla/gecko/home/activitystream/topsites/TopSitesPagerAdapter.java
@@ -5,16 +5,17 @@
 package org.mozilla.gecko.home.activitystream.topsites;
 
 import android.content.Context;
 import android.database.Cursor;
 import android.support.v4.view.PagerAdapter;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
+import android.view.ViewParent;
 
 import org.mozilla.gecko.R;
 import org.mozilla.gecko.home.HomePager;
 import org.mozilla.gecko.widget.RecyclerViewClickSupport;
 
 import java.util.ArrayList;
 import java.util.List;
 
@@ -63,16 +64,22 @@ public class TopSitesPagerAdapter extend
     public boolean isViewFromObject(View view, Object object) {
         return view == object;
     }
 
     @Override
     public Object instantiateItem(ViewGroup container, int position) {
         TopSitesPage page = pages.get(position);
 
+        final ViewParent viewParent = page.getParent();
+        if (viewParent != null && viewParent instanceof ViewGroup) {
+            ViewGroup viewGroup = (ViewGroup) viewParent;
+            viewGroup.removeView(page);
+        }
+
         container.addView(page);
 
         return page;
     }
 
     @Override
     public int getItemPosition(Object object) {
         if (pages.contains(object)) {