小编Art*_*ins的帖子

可以将多个视图添加到活动的根视图吗?

这可能听起来很愚蠢,但实际上我找不到任何东西.可以在Android中的活动根视图中添加多个视图吗?

所以例如我可以这样:

setContentView(R.layout.main);
setContentView(gLView);
setContentView(otherView);
Run Code Online (Sandbox Code Playgroud)

或者只是将其作为视图检索

FrameLayout layout = (FrameLayout)this.getWindow().getDecorView().findViewById(android.R.id.content);
layout.addView(view1);
layout.addView(view2);
layout.addView(view3);
layout.addView(view4);
Run Code Online (Sandbox Code Playgroud)

这一切似乎都适用于我测试的设备,但它是否能保证能够在所有这些设备上运行?或者我应该人工创建单个FrameLayout添加到根视图并添加所有内容FrameLayout

更多实验: 1)如果我不使用setContentView和打印:

Log.d("Test", this.getWindow().getDecorView().findViewById(android.R.id.content).getClass().getName());
Run Code Online (Sandbox Code Playgroud)

我得到: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);
Run Code Online (Sandbox Code Playgroud)

它附上了视图

所以我假设android.R.id.content返回的不是你设置的内容,setContentView而是你设置的内容,或者活动中的实际根视图(结果是FrameLayout?)

我可以通过这种方式添加多个孩子,但问题是: 我允许这样做吗?

android

5
推荐指数
1
解决办法
4039
查看次数

标签 统计

android ×1