android.view.Window
就算是初学Android的都碰到过这样的语句:
Window window = Activity.getWindow();
window.requestFeature(Window.FEATURE_NO_TITLE);
今天又碰到一个Window的一个新的静态常量属性
window.requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);
官网上对该常量给出的解释是:Flag for requesting that window content changes should be animated using a TransitionManager.
翻译一下即:用于请求该窗口内容更改的标志,应使用TransitionManager进行动画处理。
==========================================================================
在查上面的内容的过程中,又涉及到了Activity、View、Window之间的三角关系,找了一篇文章,写的很详细,没咋看懂,链接在此。
收获了几个点:
1、有View即视图地方就一定有Window,视图是无法脱离Window这个抽象的东西独立存在的。
2、Android中可以提供视图的地方有Activity,DIalog,Toast,除此之外,还有一些依托Window而实现的视图,比如PopupWindow,Menu,他们也是视图,有视图的地方就有Window,因此Activity,Dialog,Toast等视图都对应着一个Window。
3、DecorView作为顶级View,一般情况下它内部会包含一个竖直方向的LinearLayout,在这个LinearLayout里面有上下两个部分,上面是标题栏,下面是内容栏,其中标题栏一般由Activity的Theme样式所决定。在Activity中我们通过setContentView所设置的布局文件其实就是被加到内容栏之中的。
4、一个比喻总结下Activity Window View三只之间的关系:Activity像一个工匠(控制单元),Window像窗户(承载模型),View像窗花(显示视图)。