OSDN Git Service

Invalidate TextView after locale change
authorRoozbeh Pournader <roozbeh@google.com>
Thu, 31 Mar 2016 18:23:00 +0000 (11:23 -0700)
committerRoozbeh Pournader <roozbeh@google.com>
Thu, 31 Mar 2016 18:23:00 +0000 (11:23 -0700)
Bug: 19294390
Change-Id: Ie0f08ab84b386ef6daa2570ea4d5203a04763b06

core/java/android/widget/TextView.java

index 4a68d3c..7602416 100644 (file)
@@ -2893,6 +2893,11 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
     public void setTextLocale(@NonNull Locale locale) {
         mLocalesChanged = true;
         mTextPaint.setTextLocale(locale);
+        if (mLayout != null) {
+            nullLayouts();
+            requestLayout();
+            invalidate();
+        }
     }
 
     /**
@@ -2909,6 +2914,11 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
     public void setTextLocales(@NonNull @Size(min=1) LocaleList locales) {
         mLocalesChanged = true;
         mTextPaint.setTextLocales(locales);
+        if (mLayout != null) {
+            nullLayouts();
+            requestLayout();
+            invalidate();
+        }
     }
 
     @Override
@@ -2916,6 +2926,11 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
         super.onConfigurationChanged(newConfig);
         if (!mLocalesChanged) {
             mTextPaint.setTextLocales(LocaleList.getDefault());
+            if (mLayout != null) {
+                nullLayouts();
+                requestLayout();
+                invalidate();
+            }
         }
     }