2013-05-12 87 views
-1

我有几个动态添加到RelativeLayout的自定义ImageView。如何删除自定义视图?

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); 
} 

我知道正确的方式(记录)使用上面的方法来删除视图。但它不适用于我的情况。我搜索,阅读了很多帖子,并在提问前挣扎了三天。

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

回答

0

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