DecorView里面的ViewStub是什么?

时间:2017-05-26 12:02:26

标签: android viewstub

我发现在function messageReceived(payload) { var notificationOptions = { body: payload.notification.body, icon: payload.notification.icon, click_action: payload.notification.click_action }; new Notification(payload.notification.title, notificationOptions); } 下,无论有没有标题或decorView,都会存在ActionBar

它的用途是什么?

enter image description here

3 个答案:

答案 0 :(得分:1)

ViewStub有点像View,在需要的时候会被懒散地膨胀。

在您发布的图表中,您可以看到action_mode_bar_stub ID。

显然,并不总是你真的需要这个观点被夸大。用户只需输入Contextual Action Mode即可。因此,为了不使视图层次结构卷积,在用户实际需要显示该视图之前,该视图不会被夸大。一旦虚增,视图层次结构就会发生变化,您不再会看到ViewStub那里。

答案 1 :(得分:0)

基于此视图的id,它可能是ActionMode布局的位置/空格/容器。在某些设备上,它可能如下所示(内容上方的顶部栏,当ActionBar / Toolbar出现时会被替换)

action mode example

答案 2 :(得分:0)

查看此文件:https://github.com/aosp-mirror/platform_frameworks_base/blob/6bebb8418ceecf44d2af40033870f3aabacfe36e/core/res/res/layout/screen.xml

在此文件中,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"/>

有人说这是动作模式的弹出栏。