我的问题描述
在此屏幕截图中有两个 ListView
。
我想要实现的是当我触摸紫色的 ListView
时,被触摸的单元格会向上移动并停在蓝色 ListView
的底部位置。
比如我点了“决定心脏移植”,那么他们会是一个动画,显示这个细胞向上移动,然后停在“肝脏移植”的位置。
我尝试过的
我在紫色的 ListView
中试过这个
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
// Setup the animation view
Log.d("onListItemClick", "Position: " + viewForAnim.getX() + ", " + viewForAnim.getY());
// Move up the selected view
Animation animation = null;
animation = new TranslateAnimation(0, 0, 0, -v.getY()-l.getY());
animation.setDuration(700);
v.startAnimation(animation);
}
但这似乎会将选定的单元格移动到 ListView 的边界内,但不能移出它。
考虑到动画紫色 ListView 的单元格可能被蓝色 ListView 覆盖,我什至尝试通过使用更改 ListView 的 z 顺序
l.bringToFront();
但是这也不起作用。
而且我还尝试了这个 SO 帖子中显示的方法
Android -- How to position View off-screen?
它可能适用于动画 View ,但对我的情况不起作用。
然后我尝试设置 android:clipChildren
但这对需要将单元格移出 ListView 的动画不起作用。
那么你们能告诉我如何实现这种动画效果的正确方法吗?
最佳答案
尝试在平移动画中使用relative_to_parent
关于android - 在 Android 中为 ListView 之外的单元格设置动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17744133/