android - 在 Android 中为 ListView 之外的单元格设置动画

标签 android android-listview android-animation

我的问题描述

在此屏幕截图中有两个 ListView

enter image description here

我想要实现的是当我触摸紫色的 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/

相关文章:

Android 自定义适配器无法正常用于聊天 ListView

android - 如何在 main.xml 中插入 list.xml 文件

Android 卡片动画

android - 如何让 ViewSwitcher 只包裹当前显示的 View 高度?

android - 使用应用内支付购买完整版游戏

android - keystore apk 统一错误

java - SQLiteOpenHelper 和 SQLiteAssetHelper 之间的区别?

android - 如何提高 ListView 的滚动速度

Android 9 总是在 onStartJob 返回 true 后立即调用 onStopJob