我有一个关于Android Activitys的问题:
“活动”具有方法addContentView(View)
,而“视图组”具有(类似?)addView(View)
方法。
不幸的是,它没有记录来自addContentView
的视图的放置位置。它是像LinearLayout
一样只是将视图添加到底部,还是更像FrameLayout
,将其视图添加到“顶部”?它是否依赖于setContentView
设置的ViewGroup
?
如果我深入到源代码中,我会看到addContentView
将调用Window
的抽象方法addContentView
。不幸的是,我看不到哪个类正在实现这个方法。那么Activitys addContentView
的行为到底是什么呢?
2条答案
按热度按时间e3bfsja21#
每个Activity的基本布局都是
FrameLayout
。这意味着您通常通过setContentView()
设置的布局是此布局的子布局。addContentView()
只添加另一个子布局,因此其行为类似于FrameLayout
(这意味着它在现有元素之上添加新的UI元素)。您可以使用
ANDROID_SDK\tools
文件夹中名为hierachyviewer
的工具来检查这一点。addContentView()
之前的布局,我的Activity由默认的FrameLayout组成,包含一个LinearLayout和一个Button(我的布局)。这反映在这里的最下面一行,上面的其他元素是标题/状态栏。*addContentView()
添加TextView后,它看起来如下所示。您可以看到基础FrameLayout获得了一个新的子级。*lf3rwulv2#
//
//