diff options
Diffstat (limited to 'core/java/android/widget/TextView.java')
| -rw-r--r-- | core/java/android/widget/TextView.java | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index 69a5e3904715..b1136e5ae1e6 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -10631,8 +10631,8 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener return; } - if ((mMarquee == null || mMarquee.isStopped()) && (isFocused() || isSelected()) - && getLineCount() == 1 && canMarquee()) { + if ((mMarquee == null || mMarquee.isStopped()) && isAggregatedVisible() + && (isFocused() || isSelected()) && getLineCount() == 1 && canMarquee()) { if (mMarqueeFadeMode == MARQUEE_FADE_SWITCH_SHOW_ELLIPSIS) { mMarqueeFadeMode = MARQUEE_FADE_SWITCH_SHOW_FADE; @@ -11091,6 +11091,12 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener } } + @Override + public void onVisibilityAggregated(boolean isVisible) { + super.onVisibilityAggregated(isVisible); + startStopMarquee(isVisible); + } + /** * Use {@link BaseInputConnection#removeComposingSpans * BaseInputConnection.removeComposingSpans()} to remove any IME composing @@ -13712,7 +13718,8 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener mChoreographer.removeFrameCallback(mTickCallback); final TextView textView = mView.get(); - if (textView != null && (textView.isFocused() || textView.isSelected())) { + if (textView != null && textView.isAggregatedVisible() + && (textView.isFocused() || textView.isSelected())) { long currentMs = mChoreographer.getFrameTime(); long deltaMs = currentMs - mLastAnimationMs; mLastAnimationMs = currentMs; |
