From 9c0874408cfc6f6f4e4561973ca5ae52a5982db7 Mon Sep 17 00:00:00 2001 From: Chet Haase Date: Wed, 12 Jan 2011 16:20:16 -0800 Subject: [PATCH] Supress layout requests while a LayoutTransition is running. LayoutTransition works by animating layout-related properties (left, right, top, and bottom). This works great when that animation is the only thing affecting the layout of the UI. But if there are other things happening in the application that cause layout to run on that container or in its parent hierarchy, this can cause the layout properties on its children to get mis-set during the middle of the transition. This results in artifacts like animating objects jumping to locations where they would be were there no animation running. The fix is to supress layout requests on that container (and its children) until the transition is complete (then issue a layout request on the container to make sure that the container has the correct layout data) Change-Id: I15bf0423a11409f854076f86099233db7fe4edc0 --- api/11.xml | 38038 +++++++++++++++- api/current.xml | 43 +- .../android/animation/LayoutTransition.java | 52 +- core/java/android/view/View.java | 7 +- core/java/android/view/ViewGroup.java | 23 + 5 files changed, 37362 insertions(+), 801 deletions(-) diff --git a/api/11.xml b/api/11.xml index e2f8025547b71..1bcf563cc0424 100644 --- a/api/11.xml +++ b/api/11.xml @@ -1615,6 +1615,45 @@ > + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -15950,6 +22796,19 @@ + + + + + + + + + + + + + + + + + + + + + + + + @@ -16354,6 +23287,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -17625,7 +24685,7 @@ synchronized="false" static="false" final="false" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -17840,6 +24900,17 @@ visibility="public" > + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + @@ -21934,6 +29535,39 @@ visibility="public" > + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -23923,7 +33497,7 @@ synchronized="false" static="false" final="false" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -24026,6 +33600,17 @@ visibility="public" > + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -33135,6 +46380,21 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -43451,6 +57632,28 @@ visibility="public" > + + + + + + + + + + + + + + + + + + + + + + + + @@ -51251,7 +65528,7 @@ synchronized="false" static="false" final="false" - deprecated="not deprecated" + deprecated="deprecated" visibility="protected" > @@ -51537,7 +65814,7 @@ volatile="false" static="false" final="false" - deprecated="not deprecated" + deprecated="deprecated" visibility="protected" > @@ -51673,7 +65950,7 @@ synchronized="false" static="false" final="false" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -51686,7 +65963,7 @@ synchronized="false" static="false" final="false" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -51699,7 +65976,7 @@ synchronized="false" static="false" final="false" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -51725,7 +66002,7 @@ synchronized="false" static="false" final="false" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -52199,6 +66476,19 @@ + + + + @@ -52439,6 +66729,61 @@ + + + + + + + + + + + + + + + + @@ -52818,7 +67178,7 @@ synchronized="false" static="false" final="false" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -52833,7 +67193,7 @@ synchronized="false" static="false" final="false" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -52848,7 +67208,7 @@ synchronized="false" static="false" final="false" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -52863,7 +67223,7 @@ synchronized="false" static="false" final="false" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -53274,6 +67634,19 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -55083,6 +69849,20 @@ + + + + + + + + + + + + + + + + + + @@ -55466,6 +70292,17 @@ + + @@ -55532,7 +70369,7 @@ synchronized="false" static="false" final="false" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -55583,6 +70420,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -56717,6 +71743,29 @@ + + + + + + + + + + + + + + @@ -56794,6 +71843,33 @@ + + + + + + + + + + + + + + + + + + @@ -56917,6 +71993,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -93725,7 +111961,7 @@ synchronized="false" static="true" final="true" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -93736,7 +111972,7 @@ synchronized="false" static="true" final="true" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -93749,7 +111985,7 @@ synchronized="false" static="true" final="true" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -94254,6 +112490,21 @@ visibility="public" > + + + + + + + + + + + + + + + + + + @@ -119104,6 +137410,19 @@ deprecated="not deprecated" visibility="protected" > + + + + + + + + + + @@ -121673,7 +140025,7 @@ synchronized="false" static="true" final="false" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -121684,7 +140036,7 @@ synchronized="false" static="true" final="false" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -121695,7 +140047,7 @@ synchronized="false" static="true" final="false" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -121818,7 +140170,7 @@ synchronized="false" static="true" final="false" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -121829,7 +140181,7 @@ synchronized="false" static="true" final="false" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -121930,7 +140282,7 @@ synchronized="false" static="true" final="false" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -121941,7 +140293,7 @@ synchronized="false" static="true" final="false" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -121952,7 +140304,7 @@ synchronized="false" static="true" final="false" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -121963,7 +140315,7 @@ synchronized="false" static="true" final="false" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -122029,7 +140381,7 @@ synchronized="false" static="true" final="false" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -122040,7 +140392,7 @@ synchronized="false" static="true" final="false" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -122062,7 +140414,7 @@ synchronized="false" static="true" final="false" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -122075,7 +140427,7 @@ synchronized="false" static="true" final="false" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -122617,6 +140969,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + - + - - - - - - - - - - - - - - + + + + - + - + @@ -135051,6 +154718,28 @@ visibility="public" > + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -137502,6 +157330,10 @@ > + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + @@ -137968,6 +157908,441 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -138855,7 +159328,7 @@ value="1" static="true" final="true" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -139002,6 +159475,17 @@ visibility="public" > + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -144859,6 +165611,17 @@ visibility="public" > + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -164804,6 +192834,19 @@ + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + @@ -171175,6 +199329,18 @@ deprecated="not deprecated" visibility="public" > + + + + + + @@ -172349,6 +200515,518 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -176903,9 +206039,20 @@ - + + + - + @@ -176989,6 +206136,17 @@ visibility="public" > + + + + + + + + + + + + + + + + + + @@ -177497,7 +206729,7 @@ > - + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -183138,7 +213747,7 @@ synchronized="false" static="false" final="false" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -183186,7 +213795,7 @@ value="0" static="true" final="true" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -183197,7 +213806,7 @@ value="3" static="true" final="true" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -183691,6 +214300,19 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -185727,6 +216665,19 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -193228,7 +225058,7 @@ value="3" static="true" final="true" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -193254,6 +225084,17 @@ visibility="public" > + + @@ -194843,6 +226684,17 @@ visibility="public" > + + + + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -199870,7 +232137,7 @@ abstract="false" static="false" final="true" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -199910,7 +232177,7 @@ synchronized="false" static="true" final="false" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -199925,7 +232192,7 @@ synchronized="false" static="true" final="false" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -199936,7 +232203,7 @@ synchronized="false" static="true" final="false" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -199961,7 +232228,7 @@ abstract="false" static="true" final="false" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -209447,6 +242980,20 @@ + + + + + + + + @@ -209665,6 +243212,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -212104,7 +245782,7 @@ visibility="public" > - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -217478,6 +252699,22 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -219506,6 +255170,22 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - @@ -220895,6 +256628,17 @@ visibility="public" > + + + + + + + + + + + + + + + + - + @@ -224335,6 +260129,35 @@ + + + + + + @@ -224705,6 +260528,17 @@ visibility="public" > + + + + @@ -225042,7 +260887,7 @@ value="239" static="true" final="true" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -225057,6 +260902,17 @@ visibility="public" > + + + + + + + + + + + + @@ -225350,7 +261261,7 @@ value="242" static="true" final="true" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -225365,6 +261276,17 @@ visibility="public" > + + + + @@ -225394,7 +261327,7 @@ value="232" static="true" final="true" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -225409,6 +261342,17 @@ visibility="public" > + + + + @@ -225519,6 +261474,17 @@ visibility="public" > + + + + + + @@ -225581,7 +261569,7 @@ value="251" static="true" final="true" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -225607,6 +261595,17 @@ visibility="public" > + + @@ -225625,7 +261624,7 @@ value="249" static="true" final="true" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -225662,6 +261661,17 @@ visibility="public" > + + + + + + + + + + @@ -225713,7 +261767,7 @@ value="245" static="true" final="true" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -225728,6 +261782,17 @@ visibility="public" > + + + + @@ -225757,7 +261833,7 @@ value="233" static="true" final="true" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -226124,6 +262200,17 @@ visibility="public" > + + + + + + + + + + + + + + + + + + @@ -226652,6 +262827,17 @@ visibility="public" > + + + + + + + + + + + + + + @@ -226824,7 +263076,7 @@ value="237" static="true" final="true" - deprecated="not deprecated" + deprecated="deprecated" visibility="public" > @@ -228304,7 +264556,7 @@ return="void" abstract="false" native="false" - synchronized="true" + synchronized="false" static="false" final="false" deprecated="not deprecated" @@ -228319,7 +264571,7 @@ return="void" abstract="false" native="false" - synchronized="true" + synchronized="false" static="false" final="false" deprecated="not deprecated" @@ -228453,7 +264705,7 @@ return="java.beans.PropertyChangeListener[]" abstract="false" native="false" - synchronized="true" + synchronized="false" static="false" final="false" deprecated="not deprecated" @@ -228466,7 +264718,7 @@ return="java.beans.PropertyChangeListener[]" abstract="false" native="false" - synchronized="true" + synchronized="false" static="false" final="false" deprecated="not deprecated" @@ -228477,7 +264729,7 @@ return="boolean" abstract="false" native="false" - synchronized="true" + synchronized="false" static="false" final="false" deprecated="not deprecated" @@ -228490,7 +264742,7 @@ return="void" abstract="false" native="false" - synchronized="true" + synchronized="false" static="false" final="false" deprecated="not deprecated" @@ -228505,7 +264757,7 @@ return="void" abstract="false" native="false" - synchronized="true" + synchronized="false" static="false" final="false" deprecated="not deprecated" @@ -229534,7 +265786,7 @@ deprecated="not deprecated" visibility="public" > - + @@ -229549,11 +265801,11 @@ deprecated="not deprecated" visibility="public" > - + - + @@ -229794,7 +266046,7 @@ deprecated="not deprecated" visibility="public" > - + @@ -229809,11 +266061,11 @@ deprecated="not deprecated" visibility="public" > - + - + @@ -231224,7 +267476,7 @@ deprecated="not deprecated" visibility="public" > - + @@ -231347,7 +267599,7 @@ deprecated="not deprecated" visibility="public" > - + @@ -231359,7 +267611,7 @@ deprecated="not deprecated" visibility="public" > - + @@ -232030,7 +268282,7 @@ deprecated="not deprecated" visibility="public" > - + @@ -232524,7 +268776,7 @@ deprecated="not deprecated" visibility="public" > - + @@ -232720,7 +268972,7 @@ deprecated="not deprecated" visibility="public" > - + @@ -232735,11 +268987,11 @@ deprecated="not deprecated" visibility="public" > - + - + @@ -236540,7 +272792,7 @@ deprecated="not deprecated" visibility="public" > - + @@ -236555,11 +272807,11 @@ deprecated="not deprecated" visibility="public" > - + - + @@ -237082,7 +273334,7 @@ deprecated="not deprecated" visibility="public" > - + @@ -238095,9 +274347,9 @@ deprecated="not deprecated" visibility="public" > - + - + @@ -249908,9 +286160,9 @@ > - + - + - + - + - + - + @@ -249970,9 +286222,9 @@ > - + - + @@ -250008,9 +286260,9 @@ > - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -267107,9 +303359,9 @@ > - + - + - + - + - + @@ -267825,9 +304077,9 @@ > - + - + - + - + - + - + @@ -268217,9 +304469,9 @@ > - + - + - + - + - + @@ -268508,9 +304760,9 @@ > - + - + - + - + - + @@ -268799,9 +305051,9 @@ > - + - + - + - + - + @@ -269107,9 +305359,9 @@ > - + - + - + - + - + @@ -269457,9 +305709,9 @@ > - + - + - + - + - + @@ -309551,7 +345803,7 @@ deprecated="not deprecated" visibility="public" > - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - + - + - + - + + + + + + + - + + + + + - + - + + + + + + + - + - + - + - + + + + + + + - + - + + + + + @@ -319673,6 +356132,19 @@ > + + + + - + @@ -319919,7 +356391,7 @@ native="false" synchronized="false" static="true" - final="true" + final="false" deprecated="not deprecated" visibility="public" > @@ -319945,7 +356417,7 @@ native="false" synchronized="false" static="true" - final="true" + final="false" deprecated="not deprecated" visibility="public" > @@ -319960,7 +356432,7 @@ native="false" synchronized="false" static="true" - final="true" + final="false" deprecated="not deprecated" visibility="public" > @@ -319994,7 +356466,7 @@ native="false" synchronized="false" static="true" - final="true" + final="false" deprecated="not deprecated" visibility="public" > @@ -320009,7 +356481,7 @@ native="false" synchronized="false" static="true" - final="true" + final="false" deprecated="not deprecated" visibility="public" > @@ -320196,7 +356668,7 @@ native="false" synchronized="false" static="true" - final="true" + final="false" deprecated="not deprecated" visibility="public" > @@ -320237,7 +356709,7 @@ native="false" synchronized="false" static="true" - final="true" + final="false" deprecated="not deprecated" visibility="public" > @@ -326366,7 +362838,7 @@ deprecated="not deprecated" visibility="public" > - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + @@ -340824,9 +377296,9 @@ > - + - + @@ -340908,9 +377380,9 @@ > - + - + @@ -341128,9 +377600,9 @@ > - + - + - + - + - + - + - + - + - + @@ -341878,7 +378350,7 @@ deprecated="not deprecated" visibility="public" > - + - + - + - + - + - + @@ -342247,7 +378719,7 @@ deprecated="not deprecated" visibility="public" > - + - + + + + + @@ -221085,6 +221107,25 @@ visibility="public" > + + + + + + + + + + 0); + } + + /** + * Returns true if any of the animations in this transition are currently running. + * + * @return true if any animations in the transition are running. + */ + public boolean isRunning() { + return (currentChangingAnimations.size() > 0 || currentVisibilityAnimations.size() > 0); + } + /** * This method runs the animation that makes an added item appear. * @@ -842,28 +863,31 @@ public class LayoutTransition { public interface TransitionListener { /** - * This event is sent to listeners when an APPEARING or DISAPPEARING transition - * begins. + * This event is sent to listeners when any type of transition animation begins. * * @param transition The LayoutTransition sending out the event. * @param container The ViewGroup on which the transition is playing. - * @param view The View object being added or removed from its parent. - * @param transitionType The type of transition that is beginning, either - * {@link android.animation.LayoutTransition#APPEARING} or - * {@link android.animation.LayoutTransition#DISAPPEARING}. + * @param view The View object being affected by the transition animation. + * @param transitionType The type of transition that is beginning, + * {@link android.animation.LayoutTransition#APPEARING}, + * {@link android.animation.LayoutTransition#DISAPPEARING}, + * {@link android.animation.LayoutTransition#CHANGE_APPEARING}, or + * {@link android.animation.LayoutTransition#CHANGE_DISAPPEARING}. */ public void startTransition(LayoutTransition transition, ViewGroup container, View view, int transitionType); /** - * This event is sent to listeners when an APPEARING or DISAPPEARING transition ends. + * This event is sent to listeners when any type of transition animation ends. * * @param transition The LayoutTransition sending out the event. * @param container The ViewGroup on which the transition is playing. - * @param view The View object being added or removed from its parent. - * @param transitionType The type of transition that is ending, either - * {@link android.animation.LayoutTransition#APPEARING} or - * {@link android.animation.LayoutTransition#DISAPPEARING}. + * @param view The View object being affected by the transition animation. + * @param transitionType The type of transition that is ending, + * {@link android.animation.LayoutTransition#APPEARING}, + * {@link android.animation.LayoutTransition#DISAPPEARING}, + * {@link android.animation.LayoutTransition#CHANGE_APPEARING}, or + * {@link android.animation.LayoutTransition#CHANGE_DISAPPEARING}. */ public void endTransition(LayoutTransition transition, ViewGroup container, View view, int transitionType); diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index 20b3b4611aab9..45c35f038c5da 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -8883,11 +8883,12 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility * (The first is measuring). In this phase, each parent calls * layout on all of its children to position them. * This is typically done using the child measurements - * that were stored in the measure pass(). + * that were stored in the measure pass().

* + *

Derived classes should not override this method. * Derived classes with children should override * onLayout. In that method, they should - * call layout on each of their children. + * call layout on each of their children.

* * @param l Left position, relative to parent * @param t Top position, relative to parent @@ -8895,7 +8896,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility * @param b Bottom position, relative to parent */ @SuppressWarnings({"unchecked"}) - public final void layout(int l, int t, int r, int b) { + public void layout(int l, int t, int r, int b) { int oldL = mLeft; int oldT = mTop; int oldB = mBottom; diff --git a/core/java/android/view/ViewGroup.java b/core/java/android/view/ViewGroup.java index ed5eed159f0d9..d58604329336f 100644 --- a/core/java/android/view/ViewGroup.java +++ b/core/java/android/view/ViewGroup.java @@ -318,6 +318,9 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager private View[] mChildren; // Number of valid children in the mChildren array, the rest should be null or not // considered as children + + private boolean mLayoutSuppressed = false; + private int mChildrenCount; private static final int ARRAY_INITIAL_CAPACITY = 12; @@ -1828,6 +1831,9 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager // first send it an ACTION_CANCEL motion event. cancelAndClearTouchTargets(null); + // In case view is detached while transition is running + mLayoutSuppressed = false; + final int count = mChildrenCount; final View[] children = mChildren; for (int i = 0; i < count; i++) { @@ -3618,6 +3624,19 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager (mParent == null || mParent.getChildVisibleRect(this, r, offset)); } + /** + * {@inheritDoc} + */ + @Override + public final void layout(int l, int t, int r, int b) { + if (mTransition == null || !mTransition.isChangingLayout()) { + super.layout(l, t, r, b); + } else { + // record the fact that we noop'd it; request layout when transition finishes + mLayoutSuppressed = true; + } + } + /** * {@inheritDoc} */ @@ -4306,6 +4325,10 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager @Override public void endTransition(LayoutTransition transition, ViewGroup container, View view, int transitionType) { + if (mLayoutSuppressed && !transition.isChangingLayout()) { + requestLayout(); + mLayoutSuppressed = false; + } if (transitionType == LayoutTransition.DISAPPEARING && mTransitioningViews != null) { endViewTransition(view); }