Używam niestandardowej animacji do zamiany fragmentów i chciałbym wyłączyć niektóre przyciski, gdy animacja się uruchamia i włącza wtedy, gdy animacja się kończy. Jak mogę to zrobić?FragmentTransakcja przed i po wywołaniem setCustomAnimation
8
A
Odpowiedz
25
Proponuję utworzyć pewną klasę bazową, z której rozciągnie się cała twoja Fragments
, i zdefiniować kilka metod, które można przesłonić w celu obsługi zdarzeń animacji. Następnie przesłoń onCreateAnimation()
(zakładając, że korzystasz z biblioteki wsparcia), aby wysłać zdarzenie w wywołaniach zwrotnych animacji. Na przykład:
protected void onAnimationStarted() {}
protected void onAnimationEnded() {}
protected void onAnimationRepeated() {}
@Override
public Animation onCreateAnimation (int transit, boolean enter, int nextAnim) {
//Check if the superclass already created the animation
Animation anim = super.onCreateAnimation(transit, enter, nextAnim);
//If not, and an animation is defined, load it now
if (anim == null && nextAnim != 0) {
anim = AnimationUtils.loadAnimation(getActivity(), nextAnim);
}
//If there is an animation for this fragment, add a listener.
if (anim != null) {
anim.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart (Animation animation) {
onAnimationStarted();
}
@Override
public void onAnimationEnd (Animation animation) {
onAnimationEnded();
}
@Override
public void onAnimationRepeat (Animation animation) {
onAnimationRepeated();
}
});
}
return anim;
}
Następnie za Fragment
podklasy, po prostu nadpisać onAnimationStarted()
aby wyłączyć przyciski i onAnimationEnded()
umożliwienia przycisków.
Powiązane problemy
- 1. Sprawdź warunek przed wywołaniem metody
- 2. Python dekorowanie funkcji przed wywołaniem
- 3. "new" Przed anonimowym wywołaniem funkcji Zwrócenie obiektu
- 4. Musisz zainicjować FacebookUtils przed wywołaniem loginu
- 5. Zabezpieczanie interfejsu API przed wywołaniem poza przeglądarką
- 6. Jak ustawić strefę czasową przed wywołaniem strftime?
- 7. Wątek Python uruchamia się przed wywołaniem Thread.start
- 8. Błąd: FB.login() wywoływana przed wywołaniem FB.init()
- 9. Jak sprawdzić, czy cel istnieje przed wywołaniem?
- 10. Ustalenie realloc() zachowanie przed wywołaniem to
- 11. Po i przed konstruktora kolektora
- 12. Czy powinniśmy poczekać, aż DOM załaduje się przed wywołaniem ko.applyBindings
- 13. Kiedy skrypt Perla musi wywoływać `tzset` przed wywołaniem` localtime`?
- 14. Facebook Graph API: FB.login() zadzwonił przed wywołaniem FB.init()
- 15. Składnia języka JavaScript z [...] przed wywołaniem wywołania funkcji/konstruktora
- 16. Jak sprawdzić, czy proces wciąż działa przed wywołaniem Process.GetProcessById?
- 17. Jak czekać na załadowanie elementu div przed wywołaniem innej funkcji?
- 18. wykonywania kodu w przeciążonego konstruktora przed wywołaniem tej()
- 19. Dlaczego nie muszę dodawać "python" przed wywołaniem skryptu Python?
- 20. Właściwość SelectCommand nie została zainicjowana przed wywołaniem "Wypełnij". w WinForm
- 21. Co to jest instrukcja lea przed wywołaniem metody?
- 22. Ruby on Rails - Czy mogę zmodyfikować wartość atrybutu przed wywołaniem?
- 23. Dlaczego zmienne instancji są inicjowane przed wywołaniem konstruktora?
- 24. Czy konieczne jest przekonwertowanie argumentów na tablicę przed wywołaniem zastosowania?
- 25. Spacja po, gdy, itd. (I przed parenką)
- 26. Wymiar danych przed i po wykonaniu PCA
- 27. wykonanie kodu przed i po specyfikacji
- 28. Dlaczego Twitter Bootstrap dodaje :: przed i :: po?
- 29. C# konflikty przed i po inkrementacji
- 30. Znajdź element przed i po określonym elemencie
To nie działa z przejściami materiałowymi, takimi jak Slide lub Explode, ponieważ 'anim' ma zawsze wartość NULL. – Servus7