Какова цель инструментов: openDrawer = "start" при создании DrawerLayout (с NavigationView) от мастера?
Создание активности с помощью навигационного ящика в Android Studio приводит к тому, что это отображается в коде XML:
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">
Если я удалю tools:openDrawer="start"
, при предварительном просмотре макета навигационный ящик будет закрыт, а не открыт.
Я думал, что это атрибут замены, похожий на android:text
, который можно заменить на tools:text
, чтобы поместить некоторый текст-заполнитель в предварительный просмотр макета. Но когда я меняю его на android:openDrawer
или app:openDrawer
, приложение не может быть скомпилировано, потому что это неизвестные атрибуты.
Итак, мне интересно, как работает tools:openDrawer
, и где он документирован где угодно.
Ответы
Ответ 1
Android имеет специальное пространство имен XML, предназначенное для инструментов, которые могут записывать информацию в XML файлы и лишить эту информацию когда приложение упаковано так, что нет времени выполнения или скачать размер штрафа. URI пространства имен http://schemas.android.com/tools и обычно привязан к инструментам: Префикс:
Это означает, что атрибут tools
используется средой IDE и не используется в функциональности кода.
Я все еще пытаюсь найти полную документацию всех атрибутов tools
. Я не могу найти атрибут openDrawer
где угодно. Но вот над tools
отличная документация:
http://tools.android.com/tech-docs/tools-attributes
http://tools.android.com/tips/layout-designtime-attributes
UPDATE
Теперь доступна полная документация обо всех атрибутах tools
здесь.
Ответ 2
Это делает навигационный ящик видимым на экране предварительного просмотра в Android Studio, фактически подражая пользователю, вытаскивая ящик на экран.
Без этого атрибута вы увидите только представление содержимого основного экрана.
Я не пробовал, но я подозреваю, что подстановка "start" для "end" заставит ящик справа от экрана открываться (при условии, конечно, что есть).