使用一个 onClick() 动画多个视图

Animating multiple views with one onClick()

在我的 Android 应用程序中,我制作了一些自定义视图(作为 AppCompatImageView 的扩展),它们在 class 中有一个 onClick 方法执行一些动画。

点击视图时,它会移动到屏幕的某个点。但是,如果那里已经有一个视图(之前已被点击过),我需要将其移开。我如何在一个视图上点击以调用一个方法(它可以是相同的方法,并且视图将是相同的 class)对于点击的按钮和已经存在的视图(如果有的话)'docked'在这个位置。

classes 有这个 onClick 方法,效果很好:

public class CustomView extends AppCompatImageView implements View.OnClickListener {

    private boolean docked;

    ...

    @Override
    public void onClick (View v) {
        if (docked)
            //Perform some action
        else
            //Perform another action
    }
}

所有视图都是相同的 class,并且在 运行 时在主要 activity 中创建,然后添加到布局中。

谁能提出解决这个问题的最佳方法?

也许你可以使用 BroadcastReceiver。在其他视图接收到的视图上点击时发送广播以移动。在同一个 class 中写入 BroadcastReceiver class。

如果您有已点击的视图,则在该视图上调用此方法 performClick() 以调用其 onClick() 方法。所以两个视图(当前点击和之前点击)onClick() 方法都将调用。