Android RecyclerView项目在滚动时扩展到焦点。

问题描述 投票:5回答:1

我正试图为我的Android TV应用实现一种效果,使视图在聚焦时展开。

我是通过动画化ViewHolder的主视图的 LayoutParams.

它的工作原理很好,但问题是,当我滚动到视图的结束(水平线性布局)的视图扩展不对齐的视图结束,所以它导致一个非常奇怪的效果。

RecyclerView strange scrolling

这是我的代码。

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应用实现一个效果,让视图在聚焦的同时展开。

android android-recyclerview android-animation android-tv leanback
1个回答
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();
            }
        });
© www.soinside.com 2019 - 2024. All rights reserved.