我已经搜索和尝试了一些方法,如何改变高度的视图与一个平滑的动画。我发现最简单、最方便的方法是:
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
就会出现,我想翻译/动画RecyclerView
和MediaController
来改变屏幕上的YR维度。谢谢你的帮助。
最佳答案
最简单的方法(api>11,我认为):直接更改高度,完全不使用动画,并在布局中的父视图上设置android:animateLayoutChanges="true"
。
若要更改动画持续时间,请尝试调用container.getLayoutTransition().setDuration(duration)
,其中container
是上述父视图。