我已经搜索并尝试了一些如何使用平滑动画更改视图高度的方法。我找到并且最方便的最简单的方法就是这个:
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
到改变它们的尺寸以适应屏幕。
感谢您的帮助。
答案 0 :(得分:11)
最简单的方式(API> 11,我认为):直接更改高度,根本没有动画,并在布局中的父视图上设置android:animateLayoutChanges="true"
。
要更改动画时长,请尝试调用container.getLayoutTransition().setDuration(duration)
,其中container
是上述父视图。