Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/CardViewHolder.java |
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/CardViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/CardViewHolder.java |
| index 36a89e4a1677e94962ef1f4c953ae261c1e391b8..565c0fdb149a0dd1ad6e0da6a1cc2699d78014cd 100644 |
| --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/CardViewHolder.java |
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/CardViewHolder.java |
| @@ -12,6 +12,7 @@ |
| import android.view.ContextMenu.ContextMenuInfo; |
| import android.view.LayoutInflater; |
| import android.view.View; |
| +import android.view.View.OnAttachStateChangeListener; |
| import android.view.View.OnClickListener; |
| import android.view.ViewGroup; |
| import android.view.animation.Interpolator; |
| @@ -129,6 +130,21 @@ protected void onBindViewHolder() { |
| itemView.setAlpha(1f); |
| itemView.setTranslationX(0f); |
| + itemView.addOnAttachStateChangeListener(new OnAttachStateChangeListener() { |
| + @Override |
| + public void onViewAttachedToWindow(View view) {} |
| + |
| + @Override |
| + public void onViewDetachedFromWindow(View view) { |
| + // In some cases a view can be removed while a user is interacting with it, without |
| + // calling ItemTouchHelper.Callback#clearView(), which we rely on for bottomSpacer |
| + // calculations. So we call this explicitly here instead. |
| + // See https://crbug.com/664466, b/32900699 |
| + mRecyclerView.onItemDismissFinished(mRecyclerView.findContainingViewHolder(view)); |
| + itemView.removeOnAttachStateChangeListener(this); |
|
dgn
2016/11/16 15:12:34
There is another thing that is wrong with this:
-
|
| + } |
| + }); |
| + |
| // Make sure we use the right background. |
| updateLayoutParams(); |
| } |