Ho un LinearLayout
, per il quale applico android:animateLayoutChanges="true"
nella genitrice LinearLayout
. Quando l'utente preme un interruttore, i LinearLayout
"crolli" (I impostare la visibilità della visualizzazione come LinearLayout.GONE
programmazione, e quando scattano nuovamente, si espande impostando programmazione la visibilità posteriore ad LinearLayout.VISIBLE
.Animazione di layout utilizzando l'attributo "animateLayoutChanges" in XML
L'animazione di esso collasso e l'espansione funziona correttamente.
Tuttavia, tutti gli elementi al di sotto del pieghevole/espandibile LinearLayout
scatto torna prima che l'animazione del crollo è completo. le voci che stanno schioccando schiena non sono all'interno del genitore che ha animateLayoutChanges
insieme a true
e non penso che ci sia modo di metterli al suo interno.
Qui è la mia gerarchia di layout (non ho menzionato gli attributi di essere breve):
<!-- Top most LinearLayout-->
<LinearLayout>
<!-- LinearLayout containing android:animateLayoutChanges="true"-->
<LinearLayout>
<!-- RelativeLayout containing button to toggle LinearLayout visibility below-->
<RelativeLayout>
</RelativeLayout>
<!-- LinearLayout that has its visibility toggled -->
<LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
L'intero layout è inserito a livello di codice in un altro LinearLayout
(vedi sotto):
<LinearLayout
android:id="@+id/form_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<!-- This is where the previous XML layout containing the toggle-able LinearLayout
is inserted programmatically. -->
<!-- This button snaps back up to the top before the animation is complete. -->
<Button />
</LinearLayout>
Mi rendo conto che il problema sarebbe risolto se aggiungo lo Button
allo snap LinearLayout
che ha animateLayoutChanges
come vero. Tuttavia, questa non è un'opzione per alcune ragioni.
Quindi c'è qualche altro lavoro in giro?