Jestem początkującym programistą Androida. Kiedy szukam animacji RecyclerView, znalazłem informacje o RecyclerView.ItemAnimator i ale nie mogę znaleźć żadnego samouczka, jak z niego korzystać. Przeczytałem ten Jak używać ItemAnimator w RecyclerView?. Ale nadal nic nie rozumiem.
Znalazłem dokumentację.
Domyślnie RecyclerView używa DefaultItemAnimator.
Jakiego typu animacji można oczekiwać od DefaultItemAnimator, jeśli używam RecyclerView?
Użyłem LayoutAnimation, kiedy należy używać RecyclerView.ItemAnimator?
2 odpowiedzi
Chcesz ożywić rzędy recyklingu. Użyj poniższej funkcji
public void setFadeAnimation(View view) {
AlphaAnimation anim = new AlphaAnimation(0.0f, 1.0f);
anim.setDuration(1000);
view.startAnimation(anim);
}
Teraz przejdź do klasy Adapter i wywołaj tę funkcję w ramach metody onBindViewHolder
setFadeAnimation(myViewHolder.itemView);
Ożywi twoje rzędy
Możesz użyć dowolnego typu animacji, aby animować element widoku recyklera
Kroki wymagane do zbudowania następującego zachowania
Zacznij od utworzenia pliku
item_animation_fall_down.xml
wres/anim/
i dodaj następujące elementy:<set xmlns:android="http://schemas.android.com/apk/res/android" android:duration="@integer/anim_duration_medium"> <translate android:fromYDelta="-20%" android:toYDelta="0" android:interpolator="@android:anim/decelerate_interpolator" /> <alpha android:fromAlpha="0" android:toAlpha="1" android:interpolator="@android:anim/decelerate_interpolator" /> <scale android:fromXScale="105%" android:fromYScale="105%" android:toXScale="100%" android:toYScale="100%" android:pivotX="50%" android:pivotY="50%" android:interpolator="@android:anim/decelerate_interpolator" /> </set>
Definiowanie LayoutAnimacji
Po zakończeniu animacji elementu nadszedł czas na zdefiniowanie animacji układu, która zastosuje animację elementu do każdego dziecka w układzie. Utwórz nowy plik o nazwie layout_animation_fall_down.xml
w res/anim/
i dodaj następujące elementy:
<?xml version="1.0" encoding="utf-8"?>
<layoutAnimation
xmlns:android="http://schemas.android.com/apk/res/android"
android:animation="@anim/item_animation_fall_down"
android:delay="15%"
android:animationOrder="normal"
/>
- Stosowanie animacji Layout
LayoutAnimation można zastosować zarówno programowo, jak i w formacie XML.
JAVA
int resId = R.anim.layout_animation_fall_down;
LayoutAnimationController animation = AnimationUtils.loadLayoutAnimation(ctx, resId);
recyclerview.setLayoutAnimation(animation);
XML
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layoutAnimation="@anim/layout_animation_fall_down"
/>
Więcej informacji znajdziesz tutaj
Podobne pytania
Nowe pytania
android
Android to mobilny system operacyjny Google, używany do programowania lub tworzenia urządzeń cyfrowych (smartfony, tablety, samochody, telewizory, Wear, Glass, IoT). W przypadku tematów związanych z Androidem użyj tagów specyficznych dla Androida, takich jak android-intent, android-activity, android-adapter itp. W przypadku pytań innych niż programowanie lub programowanie, ale związanych ze strukturą Androida, użyj tego linku: https: // android.stackexchange.com.
RecycleView
. Powiedzmy, kiedy usuniesz, dodasz lub zaktualizujesz. Na przykład animacja w Gmailu lub Wiadomościach po usunięciu.RecyclerView
.