-1

我有几个自定义的 ImageView,它们被动态添加到 RelativeLayout。

public class EmptySoldierView extends ImageView {
        .
        .
    @Override
    public void onClick(View v) {
        EmptySoldierView.this.getAnimation().cancel();
        clickListener.onEmptySoldierClicked(player, regionID);
    }
}

我正在尝试删除所有这些自定义视图,如下所示:

@Override
public void onEmptySoldierClicked(Player player, int areaID) {
    player.addSoldier(areaID);
    drawSoldier(player, areaID);
    for (EmptySoldierView soldierView : emptySoldiers)
        ((ViewGroup) soldierView.getParent()).removeView(soldierView);
}

我知道删除视图的正确方法(记录在案)是使用上述方法。但在我的情况下它不起作用。我搜索,阅读了很多帖子,并在询问之前挣扎了三天。

如何删除动态添加的自定义视图?

4

1 回答 1

0

我想到了。问题是动画。视图已从布局中删除,但动画仍在图像上。animation.cancel()是不足够的。我setAnimation(null)在删除 View 之前添加了。

于 2013-05-12T13:24:04.867 回答