Je voudrais animer en douceur certaines vues en position Y en fonction du fait que l'utilisateur fasse défiler une feuille du bas.vue animée translationY sur bottomsheet scroll
Cependant l'animation est un peu saccadé.
Ceci est probablement dû au fait que le défilement d'une feuille de fond me donne un slideOffset à un certain intervalle, ce qui est trop peu fréquent pour setTranlationY comme je le fais actuellement.
Y a-t-il une meilleure façon de procéder?
rappel feuille inférieure
BottomSheetBehavior.BottomSheetCallback() {
@Override public void onSlide(@NonNull View bottomSheetView, float slideOffset) {
int offset = (int) (slideOffset * 100);
if (offset > 0) {
scrollingHeaderView.animate(offset);
}
}
});
scrollingHeaderView
public void animate(int offset) {
position = -(offset/2);
arrow.setTranslationY(offset * ANIMATION_RATIO_ARROW);
detailView.setTranslationY(offset * ANIMATION_RATIO);
}
J'ai essayé d'utiliser ObjectAnimator pour créer beaucoup de petites animations à chaque étape.
ObjectAnimator.ofFloat(arrow, "translationY", arrow.getTranslationY(), position * ANIMATION_RATIO_ARROW).start();