Mam LinearLayout, którego używam jako kontenera dla niektórych przycisków i widoków tekstowych, które chciałbym animować wysokością, aby dać wrażenie zsuwania się układu, gdy użytkownik naciśnie ". pokaż ".Animacja wysokości kontenera LinearLayout z ValueAnimatorem
Ustawiłem LinearLayout na layout_height = "0dp" i visibility = "gone" w moim xml. Następnie chciałbym ustawić, aby był widoczny i jakakolwiek wysokość jest potrzebna do zawinięcia zawartości. W tej chwili mam problemy z animacją w ogóle, nie podważaj wysokości zawartości wrapów.
Oto moja metoda animowania:
private void toggle(final LinearLayout v) {
v.setVisibility(View.VISIBLE);
ValueAnimator va = ValueAnimator.ofInt(0, 300);
va.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
public void onAnimationUpdate(ValueAnimator animation) {
Integer value = (Integer) animation.getAnimatedValue();
v.getLayoutParams().height = value.intValue();
v.invalidate();
}
});
va.start();
}
Być może jest problem jak ja ustawiania wysokości LinearLayout? Czy nie rozumiem funkcji ValueAnimatora? Rozejrzałem się po postach na blogu Cheta Haase'a, ale nie zawierają one żadnych konkretnych przykładów animacji wysokości. Nie byłem też w stanie znaleźć i dobrych przykładów, jak pracować z animacjami wysokości za pomocą API z wersji 3.0+. Chciałbym pomóc w tym, dzięki!
Dlaczego po prostu nie użyć animacji układu? –
Szczerze mówiąc nie mam pojęcia, jak z niego korzystać i doszedłem do wniosku, że skoro jestem nastawiony tylko na nowsze wersje interfejsu API, łatwiej byłoby używać nowszych klas ... Będę się dalej zastanawiać, jak to zrobić z LayoutAnimation, jeśli masz pomysł, jak to zrobić, możesz go opublikować jako lepsze rozwiązanie :) – span
Czy istnieje jakiś powód do unieważnienia? – portfoliobuilder