OSDN Git Service

Fixed bug where All Apps would appear to animate from the right
authorMichael Jurka <mikejurka@google.com>
Mon, 17 Jan 2011 02:43:58 +0000 (18:43 -0800)
committerMichael Jurka <mikejurka@google.com>
Mon, 17 Jan 2011 02:44:19 +0000 (18:44 -0800)
src/com/android/launcher2/AllAppsTabbed.java

index 2cc0a6b..47a5bf7 100644 (file)
@@ -48,6 +48,7 @@ public class AllAppsTabbed extends TabHost implements AllAppsView {
     private AllAppsPagedView mAllApps;
     private Context mContext;
     private final LayoutInflater mInflater;
+    private boolean mFirstLayout = true;
 
     public AllAppsTabbed(Context context, AttributeSet attrs) {
         super(context, attrs);
@@ -135,6 +136,11 @@ public class AllAppsTabbed extends TabHost implements AllAppsView {
 
     @Override
     public void setVisibility(int visibility) {
+        if (visibility == View.GONE && mFirstLayout) {
+            // It needs to be INVISIBLE so that it will be measured in the layout.
+            // Otherwise the animations is messed up when we show it for the first time.
+            visibility = View.INVISIBLE;
+        }
         final boolean isVisible = (visibility == View.VISIBLE); 
         super.setVisibility(visibility);
         float zoom = (isVisible ? 1.0f : 0.0f);
@@ -147,6 +153,12 @@ public class AllAppsTabbed extends TabHost implements AllAppsView {
     }
 
     @Override
+    protected void onLayout(boolean changed, int l, int t, int r, int b) {
+        mFirstLayout = false;
+        super.onLayout(changed, l, t, r, b);
+    }
+
+    @Override
     public boolean isAnimating() {
         return (getAnimation() != null);
     }