滚动

时间:2018-03-05 16:13:57

标签: android android-recyclerview android-animation android-tv leanback

我正在尝试为我的Android TV应用程序实现效果,以便在关注时扩展视图。

我通过动画ViewHolder的主视图LayoutParams来实现这一点。

它运行正常但问题是当我向视图的末尾滚动(水平线性映射)时,视图扩展未与视图的末尾对齐,因此它会产生非常奇怪的效果。

RecyclerView strange scrolling

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

如何解决奇怪的滚动问题?

感谢。

1 个答案:

答案 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();
            }
        });