Что такое вид декора окна телефона?

Я попытался получить корневой вид макета, который я включаю (включая тег). Вместо первоначальной относительной компоновки, которую я использовал, он вернул окно просмотра окна телефона. Что это? Почему это не под относительной разметкой?

Структура ниже:

<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>

2 ответа

Как вы пытаетесь получить Root View?
Представление "Окно телефона" является представлением верхнего уровня, а все остальное (ваша деятельность) является дочерним для этого.
См. https://developer.android.com/reference/android/view/Window.html

Абстрактный базовый класс для окна верхнего уровня и политики поведения. Экземпляр этого класса должен использоваться в качестве представления верхнего уровня, добавляемого в диспетчер окон. Он предоставляет стандартные политики пользовательского интерфейса, такие как фон, область заголовка, обработка ключей по умолчанию и т. Д.

Единственной существующей реализацией этого абстрактного класса является android.view.PhoneWindow, которую вы должны создать при создании окна.

Если вы хотите получить полную иерархию представлений, попробуйте UI Automator Viewer.

  1. Проще говоря, Decor-view - это то, что вы видите за мгновение до того, как разметка макета активности. Обычно это просто белый экран.

  2. Чтобы получить представление о корне включенного макета, вы должны дать ему идентификатор в файле макета (include_attachment_options.xml) и затем посмотреть его следующим образом:

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

Другие вопросы по тегам