DecorView里面的ViewStub是什么?
What is the ViewStub inside DecorView?
我发现在decorView
下,无论有无标题或ActionBar
,ViewStub
都会存在。
有什么用?
根据此视图的 ID,ActionMode
布局可能是 place/space/container。在某些设备上,它可能看起来像下面(内容上方的顶部栏,当 ActionBar
/Toolbar
出现时被替换)
ViewStub
有点像 View
,会在以后需要时懒惰地膨胀。
在您发布的图表中,您可以看到 action_mode_bar_stub
ID。
显然,您并不总是需要放大该视图。一旦用户输入 Contextual Action Mode,您将只需要它。因此,为了不混淆视图层次结构,直到用户实际需要显示该视图时,该视图才会被扩充。膨胀后,视图层次结构将发生变化,您将不再在那里看到 ViewStub
。
在这个文件中,action_mode_bar_stub
的实际代码:
<!-- Popout bar for action modes -->
<ViewStub android:id="@+id/action_mode_bar_stub"
android:inflatedId="@+id/action_mode_bar"
android:layout="@layout/action_mode_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="?attr/actionBarTheme"/>
据说是动作模式的弹出栏。
我发现在decorView
下,无论有无标题或ActionBar
,ViewStub
都会存在。
有什么用?
根据此视图的 ID,ActionMode
布局可能是 place/space/container。在某些设备上,它可能看起来像下面(内容上方的顶部栏,当 ActionBar
/Toolbar
出现时被替换)
ViewStub
有点像 View
,会在以后需要时懒惰地膨胀。
在您发布的图表中,您可以看到 action_mode_bar_stub
ID。
显然,您并不总是需要放大该视图。一旦用户输入 Contextual Action Mode,您将只需要它。因此,为了不混淆视图层次结构,直到用户实际需要显示该视图时,该视图才会被扩充。膨胀后,视图层次结构将发生变化,您将不再在那里看到 ViewStub
。
在这个文件中,action_mode_bar_stub
的实际代码:
<!-- Popout bar for action modes -->
<ViewStub android:id="@+id/action_mode_bar_stub"
android:inflatedId="@+id/action_mode_bar"
android:layout="@layout/action_mode_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="?attr/actionBarTheme"/>
据说是动作模式的弹出栏。