android– 可以将多个视图添加到Activity的根视图吗?

android– 可以将多个视图添加到Activity的根视图吗?,第1张

概述这可能听起来很愚蠢,但实际上我找不到任何东西.可以在Android中的活动根视图添加多个视图吗?所以例如我可以这样:setContentView(R.layout.main); setContentView(gLView); setContentView(otherView); 或者只是将其作为视图检索FrameLayout layout = (Frame

这可能听起来很愚蠢,但实际上我找不到任何东西.
可以在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?)

我可以通过这种方式添加多个孩子,但问题是:
我被允许这样做吗?最佳答案是的,在根级别添加多个内容视图是完全可以的.内容视图只是简单地添加到FrameLayout容器中,如果只需要FrameLayout就可以将它用于布局,而不是添加额外的容器层.

如果要添加新内容VIEw,则应使用addContentVIEw()方法而不是setContentVIEw(),这将导致替换现有内容.

此外,还可以使用 tag将多个视图添加到XML布局中的内容容器中,这将仅替换基本FrameLayout. 总结

以上是内存溢出为你收集整理的android – 可以将多个视图添加到Activity的根视图吗?全部内容,希望文章能够帮你解决android – 可以将多个视图添加到Activity的根视图吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1140400.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-31
下一篇2022-05-31

发表评论

登录后才能评论

评论列表(0条)