У меня есть collapsingToolbarLayout
, и я хочу сделать анимацию, пока пользователь расширяет / сворачивает представление. Я добавил анимацию в addOnOffsetChangedListener
, но проблема в том, что анимация не плавная. Например, на Свернуть imageview
должен масштабироваться, затем альфа. Также он не должен менять свою позицию, поэтому для этого я использовал translationY
. Хорошо, позвольте мне показать мой код. Я использую dataBinding
.
binding.appbar.addOnOffsetChangedListener((abLayout, offset) -> {
// Scale out the image and alpha.
float scale = 1 - ((float) Math.abs(offset)/abLayout.getTotalScrollRange());
binding.image.setTranslationY(Math.abs(offset));
binding.image.animate().scaleX(scale).scaleY(scale).alpha(scale);
if (Math.abs(offset) == abLayout.getTotalScrollRange()) {
binding.labelNewsTitleToolbar.setVisibility(View.VISIBLE);
binding.labelNewsTitle.setVisibility(View.INVISIBLE);
} else if (Math.abs(offset) < abLayout.getTotalScrollRange()) {
binding.labelNewsTitle.setVisibility(View.VISIBLE);
binding.labelNewsTitleToolbar.setVisibility(View.INVISIBLE);
}
if (offset == 0)
binding.image.animate().scaleX(1.0f).scaleY(1.0f).alpha(1.0f);
});
Как я могу оптимизировать его, чтобы сделать более плавным? Когда я быстрее сворачиваю изображение, оно не может анимироваться во времени.