【问题标题】:Animate layout size change动画布局大小更改
【发布时间】:2015-09-16 07:55:50
【问题描述】:

我有如下屏幕所示的活动。

视图 1 的宽度和高度分别为 match_parent。视图 2 具有宽度 match_parent 和固定 (200 dp) 高度。

单击按钮时,我会更改视图 2 的可见性(从可见到消失)。一旦我隐藏视图 2,视图 1 就会立即全屏显示或突然出现。我希望 View 1 逐渐扩展到带有动画的全屏,而不是立即展开。

如何为这个布局大小变化设置动画?

【问题讨论】:

    标签: android animation


    【解决方案1】:

    您可以在父布局上设置android:animateLayoutChanges="true"。这适用于 API 11 及更高版本。

    【讨论】:

    • 谢谢。您的解决方案有效。但是,我还有一个问题。假设 View1 和 View2 不是视图而是片段。所以现在顶部是 Fragment1,下面是 Fragment2。现在,每当 Fragment2 更改大小或隐藏时,我希望 Fragment1 以动画形式全屏显示。我尝试在包含这些片段的两个 FrameLayouts 的父布局上设置 android:animateLayoutChanges="true" 但它没有解决问题。请帮我解决这个新场景。
    【解决方案2】:

    你需要对 view1 使用缩放动画,对 view2 使用淡出,然后使用 Animatorset 同时运行这两者。例如对于一个简单的缩放动画

    ScaleAnimation anim = new ScaleAnimation(fXscale, toXscale,    fYscale, tYscale, Animation.RELATIVE_TO_SELF, (float)0.5, Animation.RELATIVE_TO_SELF, (float)0.5);//fix to fit your needs.
    

    【讨论】:

    • 这不是正确的答案。这个问题与调整大小有关,这与缩放不同。我会在它被否决之前删除它。
    • @PaulBurke“我希望 View 1 逐渐扩展到全屏动画而不是立即”上面的行有什么建议?
    猜你喜欢
    • 1970-01-01
    • 2018-06-10
    • 2017-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-08
    相关资源
    最近更新 更多