我有一个关于安卓的问题。假设我们有我们的主要 xml 布局文件,并通过使用(例如)FrameLayout 来定义一个占位符。还假设我们有 2 个其他 xml 布局文件显示任何内容。所以我想要做的是以编程方式将两种布局之一动态地注入到占位符中。我知道存在 Activitis、Fragments、ViewFlipper 等概念。但我觉得做这样的事情很舒服:
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);
}
例如显示 loadingAnimation (view2) 而不是普通内容 (view1),因此我可以在 xml 中定义舒适和独立的视图。
LayoutInflater 的使用值得称道吗?性能和内存管理呢?你怎么看待这件事?这是Android中的常见方式吗?