什么是手机窗口装饰视图



我尝试获取我正在包含的布局的根视图(包含标签)。它不是我使用的初始相对布局,而是返回手机窗口装饰视图。这是什么?怎么不在相对布局下?

结构如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:tag="rlMain"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:background="@color/lightest_gray"> 
  <include layout="@layout/include_attachment_options" />
</RelativeLayout>

您如何尝试获取根视图?
手机窗口装饰视图是顶级视图,其他所有内容(您的活动)都是子视图。
参考: https://developer.android.com/reference/android/view/Window.html

顶级窗口外观和行为策略的抽象基类。此类的实例应用作添加到窗口管理器的顶级视图。它提供标准的 UI 策略,例如背景、标题区域、默认密钥处理等。

这个抽象类的唯一现有实现是android.view.PhoneWindow,当需要Window时,你应该实例化它。

如果要获取完整的视图层次结构,请尝试使用 UI 自动操作查看器。

  1. 简而言之,装饰视图是您在活动布局膨胀前一刻看到的内容。通常,它只是一个白屏。

  2. 为了获取所包含布局的根视图,您应该在布局文件(include_attachment_options.xml)中为其提供一个ID,然后查找它,如下所示:

    RelativeLayout

    rl = (RelativeLayout) findViewById(R.id.root_layout);

最新更新