【问题标题】:How do I make a view expand like a Material "sheet"?如何使视图像材质“工作表”一样扩展?
【发布时间】:2016-03-17 19:49:32
【问题描述】:

我有一个类似卡片的视图,带有高度和白色背景,我想将其展开以填满整个屏幕。它是列表中的一张卡片(我自己的自定义布局,不是CardView),我想让它在通过片段转换点击时占据整个屏幕。

我的第一个想法是在新片段中创建一个假的、相同的视图,将其放置在项目的位置,并将其动画到顶部,同时为其布局边界设置动画以占据整个屏幕。但是,我认为这不是最好的主意,因为 Android 必须在动画运行时重新测量每一帧的布局(可能会滞后)。有没有办法以一种干净的方式获得这种效果?我将使用片段转换,所以希望我可以以某种方式使用Animator,但我会采取任何解决方案。

【问题讨论】:

    标签: android android-fragments android-animation


    【解决方案1】:

    您可以尝试做同样的事情,但不要重新布局,而是重新绘制。创建视图的 onDraw() 的自定义实现,并不难。

    视图将填满整个屏幕,但在动画开始时只会绘制初始部分。

    或者你可以试试你的方法,它很容易实现,而且可能没那么慢。

    另外,也可以直接用Animators修改view的setLeft()、setRight()等是一个有效的解决方案。

    【讨论】:

    • 不会覆盖 onDraw 不能正确地为阴影设置动画吗?
    • 你是对的,阴影不会被动画化。尝试使用动画左、右等视图属性的 Animator。
    猜你喜欢
    • 2019-10-09
    • 1970-01-01
    • 2018-02-18
    • 2022-06-11
    • 2010-10-26
    • 2014-12-18
    • 2021-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多