有些时候我们需要将界面上的一个控件在相同的位置替换为另一个控件,对于这样的需求,Acrivity 和VIewGroup都没有提供一个直接替换控件的简易方法。既然这样,好吧,为了方便,我们自己实现一个:
private void replaceViewById(int id, View newVIew, ViewGroup parent) { int count = parent.getChildCount(); int index = -1; for (int i = 0; i < count; i++) { View child = parent.getChildAt(i); if (id == child.getId()) { index = i; break; } } if(index!=-1){ parent.removeViewAt(index); parent.addView(newVIew, index); } }