gpt4 book ai didi

android - 使用 setX、setPadding 或补间动画滑动 ListView?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:57:27 25 4
gpt4 key购买 nike

无需过多介绍,我希望能够在 ListView 中“滑动”元素,类似于 GMail 中的“滑动到存档”功能。我对 onTouchListener 没意见,我的问题是关于幻灯片动画。

首先想到的两件事是..

view.setPadding(slideOffset, 0, 0, 0);

和..

view.setX(slideOffset);

前者非常黄油,即使在模拟器上也是如此。
后者在我的 Galaxy Nexus 上有点笨拙。

我的问题:
* 无论我尝试过什么,正确的方法是什么?
为什么 setX 不如 setPadding 平滑?
一种方法是否比另一种更符合 Android 最佳实践?
补间翻译动画是一种选择吗?如果是这样,您能否提供一个简短的示例来为我指明正确的方向?

编辑:
为了清楚起见,我附上了一张我试图模拟的效果的图片。

enter image description here

最佳答案

我很确定 setX() 比较慢,因为它影响了它的 parent 。更改 View 的 X 时,每次更新值时它都会调用父级的 onLayout/onMeasure。这是因为child 的X 值可能会导致parent 上的其他item 发生移动,因此parent 需要自己重绘。

您可以通过扩展 ViewGroup 并写入这些方法的日志来轻松测试它。然后,您可以使用这两种方法,填充与 setX,看看会发生什么。

您是否要为该项目制作动画?或者您是否希望用户像在 Gmail 上一样移动它?您可以使用 ObjectAnimator 来处理项目的“X”值。结合您的项目的“硬件层”,它将创造更流畅的体验。您可以在此处找到有关如何执行此操作的更多详细信息:http://developer.android.com/guide/topics/graphics/hardware-accel.html

关于android - 使用 setX、setPadding 或补间动画滑动 ListView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14677757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com