我已经搜索和尝试了一些方法,如何改变高度的视图与一个平滑的动画。我发现最简单、最方便的方法是:

 ScaleAnimation scaleAnimation = new ScaleAnimation(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT,
                                mainLayout.getMeasuredHeight(), mainLayout.getMeasuredHeight() - mediaController.getMeasuredHeight() - conv.toPixels(20),
                                Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
                        musicListLayout.setAnimation(scaleAnimation);
                        musicListLayout.startLayoutAnimation();

但是这个方法不起作用,我不知道为什么。我已经尝试了很少,但我想让这一个工作或找到另一个将。
我有一个( WRAP_CONTENT, WRAP_CONTENT )的播放列表,当我播放一首歌时,MediaController就会出现,我想翻译/动画RecyclerViewMediaController来改变屏幕上的YR维度。
谢谢你的帮助。

最佳答案

最简单的方法(api>11,我认为):直接更改高度,完全不使用动画,并在布局中的父视图上设置android:animateLayoutChanges="true"
若要更改动画持续时间,请尝试调用container.getLayoutTransition().setDuration(duration),其中container是上述父视图。

10-07 19:30