をスクロール(スクロールしたときのすべての項目の間にスペースが伸びるだろう)、でも私は、このようなrecyclerview-animatorsやRecyclerViewItemAnimatorsかなど多くの関連ライブラリを参照各ホルダーのアニメーションをBindViewHolder()で作成します。しかし、上のすべての方法は、初めてのロードビューでアニメーションを作成し、作成したいアニメーションのように実装することはできません。誰もがそういうことをやったので、その問題を解決するのを助けてください。どうもありがとうございます。リサイクラービュー項目のアニメーションスクロールしたとき、私が発見し、研究の多くの方法を、カスタムリサイクルビュー項目のアニメーション化する
EDIT:
@Androidが推奨されているように、私は方法をOnScrollListener実装しようとしました。しかし、それは正しく動作しません。以下このコードは、私はそれらを実装する方法を示しています。
mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
LinearLayoutManager layoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();
int lastPosition = layoutManager.findLastCompletelyVisibleItemPosition();
int firstPosition = layoutManager.findFirstCompletelyVisibleItemPosition();
for (int i = firstPosition; i <= lastPosition; i++) {
if (dy < 0) {
AnimationUtils.animate(recyclerView.findViewHolderForAdapterPosition(i), false);
} else {
AnimationUtils.animate(recyclerView.findViewHolderForAdapterPosition(i), true);
}
}
}
});
public class AnimationUtils { public static void animate(RecyclerView.ViewHolder viewHolder, boolean isGoDown){ ObjectAnimator translateY = ObjectAnimator.ofFloat(viewHolder.itemView, "translationY", isGoDown == true ? 300 : -300, 0); translateY.setDuration(300); translateY.setInterpolator(new DecelerateInterpolator(2f)); translateY.start(); } }
方法 RecyclerView項目に
をフェージングのための一例であるあなたは、おそらくRecyclerViewから拡張するクラスを作成する必要があります。スクロール速度(onScrolのdyまたはdx)に基づいてビューの高さを調整するOnScrollListener LED)。次に上下にスクロールしているかどうかに応じて、ビューの重力を上下に設定します。 – Android
@Android私は、あなたが私のために推奨した方法に従って、カスタムRecyclerView.OnScrollListenerコールバックに2日間以上費やしました。しかし、それは正しく動作しません、今私はこの問題を解決するための任意のアイデアはありません。それを詳細に記述したり、別の方法で表現したりできますか?大変ありがとうございます –