我尝试获取包含(包含标记)的布局的根视图。它不是我使用的初始相对布局,而是返回了Phone Window Decor View。它是什么?为什么它不在相对布局之下?
以下结构:
<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>
答案 0 :(得分:0)
您是如何尝试获取根视图的?
电话窗口装饰视图是顶级视图,其他所有内容(您的活动)都是其中的一个。
参考:https://developer.android.com/reference/android/view/Window.html
顶级窗口外观和行为策略的抽象基类。应该将此类的实例用作添加到窗口管理器的顶级视图。它提供标准的UI策略,例如背景,标题区域,默认密钥处理等。
此抽象类的唯一现有实现是android.view.PhoneWindow,您需要在需要Window时进行实例化。
如果您想获得完整的视图层次结构,请尝试使用UI Automator Viewer。
答案 1 :(得分:0)
简单地说,Decor-view就是您在活动布局膨胀之前看到的内容。通常,它只是一个白色的屏幕。
为了掌握所包含布局的根视图,你应该在布局文件(include_attachment_options.xml)中给它一个ID,然后查找它:
RelativeLayout rl =(RelativeLayout)findViewById(R.id.root_layout);