Chcę dodać nowo dodane elementy ListView z dobrym efektem. Pomyślałem, że to proste, ale łatwo natknąłem się na problem:TransitionDrawable: automatyczne przejście do tyłu po ukończeniu
Chcę odtworzyć animację TransitionDrawable, a po jej zakończeniu - przewinąć do tyłu. Nowy przedmiot zostanie na chwilę podświetlony, a następnie zestarzeje się z resztą.
TransitionDrawable ma metody odtwarzania animacji do przodu i do tyłu, ale żadne nie mogą być użyte do synchronizacji. Spodziewałem się możliwość określenia zwrotnego dla realizacji animacji, coś jak:
TransitionDrawable transition = (TransitionDrawable) view.getBackground();
transition.startTransition(500, new TransitionCompleteListener(){
public void completed()
{
transition.reverseTransition(500);
}
});
ale nic tak jest obsługiwany przez klasę TransitionDrawable.
Problem polega na tym, jak odtwarzać animację TransitionDrawable, a kiedy się to skończy - natychmiast odtwarzać w tył? Wpadłem na pomysł, aby użyć klasy Timer
, aby opóźnić wykonanie części animacji wstecznej, ale to rozwiązanie wygląda nieco zbyt ciężko na tak prostą rzecz.
A może powinienem użyć czegoś innego niż TransitionDrawable? Chciałbym uniknąć używania animacji właściwości, ponieważ chcę obsługiwać starsze urządzenia (a PA są dostępne od czasów Honeycomb).
Hmm ... Używanie animacji może działać, gdybym ustawił kolor tła całego ListView na kolor używany do podświetlania elementów i ustaw kolor wszystkich wierszy na biały. Następnie, manipulując wartością alfa określonego rzędu, osiągnęłbym wysoki efekt. ale pomysł podklasy TransitionDrawable wydaje się lepszy, bardziej czysty i po prostu bardziej "właściwy". Spojrzałem teraz na jego źródło i wydaje się dość łatwe wdrożenie tego, czego potrzebuję. Będę aktualizować moje pytanie rozwiązaniem, kiedy będę je kodować, teraz muszę wrócić do mojej pracy magisterskiej (niezwiązanej z tym ofc - to projekt hobby). Wygrywasz nagrodę. – user1234567