为什么在setContentView之前requestFeature

时间:2014-10-24 15:12:07

标签: android android-activity view window

我想了解在Android活动中设置视图之前必须调用请求功能的原因

1 个答案:

答案 0 :(得分:0)

来自documentation

  

启用扩展屏幕功能。这必须在之前调用   的setContentView()。可以根据需要多次调用它   在setContentView()之前。如果没有调用,则不会扩展功能   能得到的。请求后,您无法关闭该功能。您   canot使用FEATURE_CUSTOM_TITLE的其他标题功能。

requestFeature修改您正在为视图充气的窗口。必须先设置窗口,然后才能给它上面的视图充气,这就是setContentView所做的事情。通俗地说,在你把窗户放到墙上之前,你不会试图挂上百叶窗吗?

当视图膨胀时,需要设置窗口并保持稳定,以便正确计算放置项目的位置。如果窗口不是常量,那么在每个requestFeature之后都必须重新填充内容视图。如果Android在setContentView之前没有强制执行requestFeature规则,那么在每个requestFeature上都会重新安装视图,最终结果很可能是屏幕闪烁几次,因为视图会一次又一次地重新充当。