这可能听起来很愚蠢,但实际上我找不到任何东西.
可以在Android中的活动根视图中添加多个视图吗?
所以例如我可以这样:
setContentView(R.layout.main);
setContentView(gLView);
setContentView(otherView);
或者只是将其作为视图检索
FrameLayout layout = (FrameLayout)this.getWindow().getDecorView().findViewById(android.R.id.content);
layout.addView(view1);
layout.addView(view2);
layout.addView(view3);
layout.addView(view4);
这一切似乎都适用于我测试的设备,但它是否能保证能够在所有这些设备上运行?
或者我应该人为地创建单个FrameLayout以添加到根视图并将所有内容添加到此FrameLayout?
更多实验:
1)如果我不使用setContentView并打印:
Log.d("Test",this.getWindow().getDecorView().findViewById(android.R.id.content).getClass().getName());
我得到:android.widget.FrameLayout
2)如果我将内容视图设置为例如GLSurfaceView并打印相同的Log.d
它还会打印android.widget.FrameLayout
3)如果我根本不使用setContentView,只需这样做
FrameLayout layout = (FrameLayout)this.getWindow().getDecorView().findViewById(android.R.id.content);
layout.addView(myView);
它附上了视图
所以我假设android.R.id.content不返回你设置的setContentView,而是你设置的内容,或者活动中的实际根视图(结果是FrameLayout?)
我可以通过这种方式添加多个孩子,但问题是:
我被允许这样做吗?
最佳答案