使用一个 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()
方法都将调用。
在我的 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()
方法都将调用。