diff options
author | Cary Clark <cary@android.com> | 2010-03-19 10:36:35 -0400 |
---|---|---|
committer | Cary Clark <cary@android.com> | 2010-03-19 10:52:41 -0400 |
commit | cfe688d8d9d09d2a9e6602361f20a8d5a4fe3621 (patch) | |
tree | c7e13cc476fb339d0931bf5a7c2aa7bdcff6a793 /core/java/android/webkit/ViewManager.java | |
parent | f19f9f55f9a1d95b1c741fc177b6b1cff4ab8034 (diff) | |
download | frameworks_base-cfe688d8d9d09d2a9e6602361f20a8d5a4fe3621.zip frameworks_base-cfe688d8d9d09d2a9e6602361f20a8d5a4fe3621.tar.gz frameworks_base-cfe688d8d9d09d2a9e6602361f20a8d5a4fe3621.tar.bz2 |
create absolute layout if view layout can't be reused
The existing view layout may not be an absolute layout,
and will throw a ClassCastException. Check to see if it
is compatible before the cast.
Change-Id: I7309600a1e7405a29e49a3bab469a164d51126ae
http://b/2526854
Diffstat (limited to 'core/java/android/webkit/ViewManager.java')
-rw-r--r-- | core/java/android/webkit/ViewManager.java | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/core/java/android/webkit/ViewManager.java b/core/java/android/webkit/ViewManager.java index 4e0e081..fc5c425 100644 --- a/core/java/android/webkit/ViewManager.java +++ b/core/java/android/webkit/ViewManager.java @@ -18,6 +18,7 @@ package android.webkit; import android.view.SurfaceView; import android.view.View; +import android.view.ViewGroup; import android.widget.AbsoluteLayout; import java.util.ArrayList; @@ -155,17 +156,18 @@ class ViewManager { v.isFixedSize = true; } - AbsoluteLayout.LayoutParams lp = - (AbsoluteLayout.LayoutParams) v.mView.getLayoutParams(); + AbsoluteLayout.LayoutParams lp; + ViewGroup.LayoutParams layoutParams = v.mView.getLayoutParams(); - if (lp == null) - lp = new AbsoluteLayout.LayoutParams(ctvD(v.width), ctvD(v.height), - ctvX(v.x), ctvY(v.y)); - else { + if (layoutParams instanceof AbsoluteLayout.LayoutParams) { + lp = (AbsoluteLayout.LayoutParams) layoutParams; lp.width = ctvD(v.width); lp.height = ctvD(v.height); lp.x = ctvX(v.x); lp.y = ctvY(v.y); + } else { + lp = new AbsoluteLayout.LayoutParams(ctvD(v.width), ctvD(v.height), + ctvX(v.x), ctvY(v.y)); } return lp; } |