android - 使用setX,setPadding或补间动画幻灯片ListView?

Sea*_*lly 5 android listview slide tween android-animation

在没有太多细节的情况下,我希望能够ListView像GMail中的"幻灯片归档"功能一样"滑动"元素.我对onTouchListener很好,所有这些,我的问题是关于幻灯片动画.

首先想到的两件事是......

view.setPadding(slideOffset, 0, 0, 0);
Run Code Online (Sandbox Code Playgroud)

和..

view.setX(slideOffset);
Run Code Online (Sandbox Code Playgroud)

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

我的问题:
*无论我尝试过什么,这样做的正确方法是什么?
为什么setX不那么顺利setPadding
一种方法是否比其他方法更符合Android最佳实践?
补间翻译动画是一种选择吗?如果是这样,你能提供一个简短的例子来指出我正确的方向吗?

编辑:
要清楚,我附上了我试图效仿的效果图像.

在此输入图像描述

Udi*_*nic 1

我很确定 setX() 速度较慢,因为它会影响其父母。当更改视图的 X 时,每次更新值时它都会调用父级的 onLayout/onMeasure 。这是因为子级的X值可能会导致父级上的其他项目移动,因此父级需要重绘自身。

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

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