我正在尝试为我的Android TV应用程序实现效果,以便在关注时扩展视图。
我通过动画ViewHolder的主视图LayoutParams
来实现这一点。
它运行正常但问题是当我向视图的末尾滚动(水平线性映射)时,视图扩展未与视图的末尾对齐,因此它会产生非常奇怪的效果。
Theres my code:
holder.m_view.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View view, boolean b) {
if (b)
{
ResizeAnimation anim = new ResizeAnimation(view, 600, view.getWidth());
anim.setDuration(200);
anim.setInterpolator(new AccelerateDecelerateInterpolator());
view.startAnimation(anim);
}
else
{
ResizeAnimation anim = new ResizeAnimation(view, 400, view.getWidth());
anim.setDuration(200);
anim.setInterpolator(new AccelerateDecelerateInterpolator());
view.startAnimation(anim);
}
}
});
虽然ResizeAnimation
是我自己的班级,他更改了视图的LayoutParams
。
如何解决奇怪的滚动问题?
感谢。
答案 0 :(得分:0)
将此添加到ViewHolder
itemView.setOnFocusChangeListener((v, hasFocus) -> {
if (hasFocus) {
ViewCompat.animate(v).scaleX(1.12f).scaleY(1.12f).setDuration(30).translationZ(1).start();
} else {
ViewCompat.animate(v).scaleX(1.0f).scaleY(1.0f).setDuration(10).translationZ(0).start();
}
});