Przy domyślnym selektorze długie naciśnięcie elementu listy powoduje przejście tła między dwoma kolorami.Android: jak uzyskać efekt blasku podczas długiego naciśnięcia elementu listy?
Wymiana selektora za pomocą poniższego usuwa efekt. Według this question potrzebuję animacji, aby ją odtworzyć. Jak mam to zrobić w xml?
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true">
<shape>
<solid
android:color="@color/state_pressed" />
</shape>
</item>
<item
android:state_focused="true">
<shape>
<solid
android:color="@color/state_focused" />
</shape>
</item>
<item>
<shape>
<solid
android:color="@color/state_idle_grey" />
</shape>
</item>
</selector>
Dziękuję, że jest doskonała. –
nie działa więcej pomysłów, dlaczego? Zastosowałem przejście, jak powiedziałeś, co oznaczało, że dla pliku "list_selector_background_transition.xml" dodajemy przejście, które dałeś w drugim bloku kodu? Zrobiłem to dokładnie, ale tylko jeden kolor jest śledzony, a tylko "list_selector_background_pressed" jest stosowany – coderVishal
@coderVishal Czy używasz 'RecyclerView'? ** To rozwiązanie działa tylko wtedy, gdy używasz podklasy 'AbsListView' ** (na przykład ListView). Sprawdza, czy tło elementu ma 'TransitionDrawable' i uruchamia animację. Niestety nie jest tak w przypadku 'RecyclerView', musisz wymyślić jakiś mechanizm, aby samemu rozpocząć animację. – Malcolm