我有一个关于Android的问题。 假设我们有我们的主要xml布局文件,并通过使用(例如)一个FrameLayout来定义一个占位符。还假设我们有2个其他的xml布局文件显示任何内容。 所以我想要做的是动态和程序化地将两个布局之一插入到占位符中。我知道存在Activitis,片段,ViewFlipper等的概念,但我觉得很舒服,做这样的事情:Android:动态加载布局文件
public class MainActivity extends Activity {
private FrameLayout placeHolder;
private View view1;
private View view2;
private RelativeLayout canvasPlaceHolder;
private PuzzleCanvas canvas;
private TextView infoLabel;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// init gui
setContentView(R.layout.activity_main);
// Load layouts from xml
LayoutInflater factory = getLayoutInflater();
view1 = factory.inflate(R.layout.view1, null);
view2 = factory.inflate(R.layout.view2, null);
}
}
与例如屏幕上的一个按钮,做这样的事情:
@Override
public void onClick(View v) {
placeHolder.removeView(view1);
placeHolder.addView(view2);
}
例如显示一个加载动画(view2)而不是普通内容(view1),所以我可以在xml中定义舒适和独立的两个视图。
LayoutInflater的使用是值得称赞的吗?性能和内存管理呢?你怎么看待这件事?这是Android中的常见方式吗?