am 7b09a4e5: am e910a7ce: Merge "DO NOT MERGE Check item type before re-binding transient state views" into klp-dev

* commit '7b09a4e5df908783a95dbfef3bc9fabda339c3a1':
  DO NOT MERGE Check item type before re-binding transient state views
diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java
index ac3fb01..ff7463c 100644
--- a/core/java/android/widget/AbsListView.java
+++ b/core/java/android/widget/AbsListView.java
@@ -2233,10 +2233,16 @@
         // data and discard the view if we fail.
         final View transientView = mRecycler.getTransientStateView(position);
         if (transientView != null) {
-            final View updatedView = mAdapter.getView(position, transientView, this);
-            if (updatedView != transientView) {
-                // Failed to re-bind the data, scrap the obtained view.
-                mRecycler.addScrapView(updatedView, position);
+            final LayoutParams params = (LayoutParams) transientView.getLayoutParams();
+
+            // If the view type hasn't changed, attempt to re-bind the data.
+            if (params.viewType == mAdapter.getItemViewType(position)) {
+                final View updatedView = mAdapter.getView(position, transientView, this);
+
+                // If we failed to re-bind the data, scrap the obtained view.
+                if (updatedView != transientView) {
+                    mRecycler.addScrapView(updatedView, position);
+                }
             }
 
             // Scrap view implies temporary detachment.