我正试图为我的Android TV应用实现一种效果,使视图在聚焦时展开。
我是通过动画化ViewHolder的主视图的 LayoutParams
.
它的工作原理很好,但问题是,当我滚动到视图的结束(水平线性布局)的视图扩展不对齐的视图结束,所以它导致一个非常奇怪的效果。
这是我的代码。
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
.
如何解决奇怪的滚动问题?
谢谢,我想为我的Android TV应用实现一个效果,让视图在聚焦的同时展开。
将此添加到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();
}
});