更改布局的高度平滑

时间:2015-04-25 08:47:21

标签: android

我已经搜索并尝试了一些如何使用平滑动画更改视图高度的方法。我找到并且最方便的最简单的方法就是这个:

 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到改变它们的尺寸以适应屏幕。

感谢您的帮助。

1 个答案:

答案 0 :(得分:11)

最简单的方式(API> 11,我认为):直接更改高度,根本没有动画,并在布局中的父视图上设置android:animateLayoutChanges="true"

要更改动画时长,请尝试调用container.getLayoutTransition().setDuration(duration),其中container是上述父视图。