如何在Android中以编程方式替换视图?
问题的原因是需要在Android中以编程方式替换视图。解决方法是使用一个实用类来移除一个视图并用另一个视图替换它。以下是解决方法的代码示例:
import android.view.View; import android.view.ViewGroup; public class ViewGroupUtils { public static ViewGroup getParent(View view) { return (ViewGroup)view.getParent(); } public static void removeView(View view) { ViewGroup parent = getParent(view); if(parent != null) { parent.removeView(view); } } public static void replaceView(View currentView, View newView) { ViewGroup parent = getParent(currentView); if(parent == null) { return; } final int index = parent.indexOfChild(currentView); removeView(currentView); removeView(newView); parent.addView(newView, index); } }
关于后续问题,当你想要将一个现有布局添加到另一个布局中时,可以使用
另外一个小的补充是,在newView.setId(currentView.getId());
,这样findViewById
将返回
还有一个问题是,newView.setLayoutParams(currentView.getLayoutParams());
。还有一个会影响到