Tools ignore android studio

Пространство имён Tools

При создании нового проекта, когда вы проектировали макет для экрана активности, то, наверняка, замечали загадочные строчки у корневого элемента со словом tools:

Настало время сорвать покровы и использовать новые возможности.

Привычное пространство имён xmlns:android позволяет настраивать внешний вид и поведение компонентов в Android-приложении. А новое пространство имён xmlns:tools позволяет среде разработки (в нашем случае, Android Studio) правильно отобразить компоненты для просмотра в режиме дизайна.

Причём возможности данного инструмента гораздо выше, чем многие себе представляют.

Для начала приведу простой пример, который многие оценят по достоинству. Представьте себе, что у вас есть компонент пустой TextView, который получает текст с сервера. Чтобы визуально представить себе, как будет выглядеть текст, не соединяясь с сервером, вам нужно временно присвоить какой-нибудь текст. А потом не забыть удалить его при создании релиза. А можно поступить проще. Инструмент tools дублирует многие визуальные атрибуты пространства имён android и вы можете заменить его следующим образом.

В реальности у текстовой метки нет текста, но в окне предварительного просмотра вы можете видеть текст и оценить дизайн. Напомню, что эта настройка относится только к среде разработки, а не к вашему приложению. Поэтому теперь можно не волноваться, что однажды вы забудете удалить временный текст. Попробуйте теперь поменять цвет фона с помощью атрибута tools:background =»#ваш_цвет». Получилось?

Кроме визуальных атрибутов, tools может использоваться для взаимодействия с инструментом Lint, который пытается подсказать при проблемном коде. К этим атрибутам можно отнести

tools:ignore

Атрибут tools:ignore похож по своему поведению на Java-аннотацию @SuppressWarnings, подсказывающему инструменту Lint не обращать внимания на код. Аналогично можно не обращать на какой-то атрибут в XML-файле.

Самый распространённый случай — использование ImageView. Lint всегда недоволен, если у данного компонента нет атрибута android:contentDescription. Профессионально сделанное приложение должно использовать данный атрибут. Но в некоторых ситуациях ImageView может быть вспомогательным элементом экрана, не несущим смысловой нагрузки, например, разделитель. И тогда можно подавить предупреждение следующим образом.

tools:targetApi

Атрибут tools:targetApi работает аналогично аннотации @TargetApi и говорит о минимальной версии API, которая будет использована для ресурсов.

Например, ваш проект использует минимальный уровень minSdkLevel = 15, а вы используете объекты RippleDrawable в качестве ресурсов в общей папке, а не в папке drawable-v21. Но если вы контролируете ситуацию и знаете, что для старых устройств есть другие ресурсы, то можете подавить предупреждение:

tools:locale

Атрибут tools:locale поможет вам подавить предупреждения Lint о неправильном правописании, выступая в качестве грамар-наци. Проблема в том, что Lint содержит проверку орфографии только на английском языке. И если ваши строковые ресурсы содержат русский текст, то его предупреждения бесполезны. Отключаем их:

Рассмотрим теперь другие доступные атрибуты.

tools:context

Атрибут tools:context у корневого элемента позволяет определить связь между макетом и классом активности, в которой данный макет будет реализован. Помогает студии сформировать в окне предварительного просмотра внешний вид, подтягивая нужную тему.

tools:layout

Атрибут tools:layout используется в разметке фрагмента, чтобы вывести макет фрагмента на экране активности.

tools:showIn

Атрибут tools:showIn позволяет указать, какую разметку нужно использовать для вывода в окне предварительного просмотра. Это может пригодиться для тега merge:

tools:menu

Атрибут tools:menu подсказывает среде разработке, какое меню нужно отобразить в окне предварительного просмотра. Также используется в корневом элементе разметки.

Можно через запятую указать несколько меню, заданных в папке res/menu. Также кроме имени XML-файла можно использовать идентификаторы меню без символа @. В окне предварительного просмотра вы можете вызвать меню и нажать на пункт меню — вас сразу перенесёт в нужный файл.

Читайте также:  Прицелы самп андроид гетто

Если не хотите выводить меню, то оставьте пустую строку. Данный атрибут не работает с темой Theme.AppCompat и производных от неё.

tools:actionBarNavMode

Атрибут tools:actionBarNavMode отвечает за внешний вид панели действий ActionBar. Он также размещается в корневом элементе разметки, не работает с темами Theme.AppCompat и Theme.Material и не действует при использовании Toolbar вместо ActionBar.

Доступны три варианта:

tools:listitem / listheader / listfooter

Также можно настроить внешний вид компонентов на основе AdapterViewListView, GridView, ExpandableListView и т.д., указав нужную разметку для отдельных элементов списка, а также заголовка и футера. Появилась поддержка и RecyclerView.

Атрибуты для заголовка и футера могут работать только для ListView, а для GridView не работает.

Для сравнения как выглядят экраны активности с использованием tools: и без него.

Мы видим вкладки, элементы меню, другую разметку для списка.

tools:layoutManager

В RecyclerView можно использовать менеджер разметок с указанием различных параметров.

tools:itemCount

Обычно студия выводит десять элементов списка в RecyclerView. Вы можете изменить это поведение данным атрибутом.

tools:openDrawer

В студии 1.4 появился новый атрибут tools:openDrawer, управляющий состоянием навигационной шторки для DrawerLayout. При значении start будет показана шторка в выдвинутом виде. Доступны значения: start, end, left, right.

tools:minValue/tools:maxValue

Атрибуты для компонента NumberPicker для задания минимального и максимального значения.

tools:src

Можно указать графический ресурс. Полезно для ImageView, когда используется пустое изображение при запуске приложения и затем скачивается картинка с сервера. Позже появилась другая удобная возможность (см. ниже)

tools:layout_height/tools:layout_width

Ширина и высота.

tools:background

tools:src=»http://developer.alexanderklimov.ru/android/studio/@tools:sample/»

В студии версии 3.0 появились новые возможности. Теперь вы можете задать аватар, имя и случайный текст без создания собственных ресурсов. Это бывает полезно, когда ресурсы берутся из внешнего источника. Вам не нужно создавать временные ресурсы, которые увеличивают размер приложения и которые можно забыть удалить.

Например, можно задать изображение для ImageView:

Если у вас несколько ImageView, то изображения будут разными! Просмотреть весь набор можно в папке ..\plugins\android\lib\sampleData.

Можно задать текст для TextView:

  • tools:text=»@tools:sample/full_names» — полное имя (также first_names, last_names)
  • tools:text=»@tools:sample/cities» — город
  • tools:text=»@tools:sample/us_zipcodes» — индексы США
  • tools:text=»@tools:sample/us_phones» — телефонные номера США в формате (800) 555-xxxx
  • tools:text=»@tools:sample/date/ddmmyy» — дата (date/day_of_week, date/mmddyy, date/hhmm, date/hhmmss)
  • tools:text=»@tools:sample/lorem» — случайный текст
  • tools:text=»@tools:sample/lorem/random» — большой случайный текст

Можно задать случайный фон

Пример применения некоторых атрибутов.

Но это ещё не всё. Если вас не устраивают изображения (там нет котов!) или тексты, предлагаемые студией, то можно задать свои изображения и тексты. Из контекстного меню папки res выбираем New | Sample Data Directory. В модуле app появится папка sampleData. Создайте текстовый файл с именем names и добавьте построчно различные имена: Барсик, Мурзик, Рыжик, Васька и т.д.

Заменим tools:text=»@tools:sample/full_names» на tools:text=»@sample/names». Теперь вместо непонятных иностранных имён будут отображаться правильные нормальные имена.

По такому же принципу можно создать собственные изображения для аватаров. В папке sampleData создайте подпапку avatars (имя произвольное) и разместите в ней нужные файлы изображений.

Используем атрибут для аватаров — tools:src=»http://developer.alexanderklimov.ru/android/studio/@sample/avatars».

Можно создать сложный вариант сочетаний имён и городов. Опять в той же папке sampleData создаём JSON-файл следующего содержания.

Можете обращаться к созданному файлу через атрибуты:

Источник

Русские Блоги

Справочник атрибутов инструментов Android

Используя пространство имен инструментов, android studio поддерживает множество атрибутов XML, которые будут удалены при сборке приложения без какого-либо влияния на размер APK и поведение во время выполнения. Посмотри пожалуйстаОфициальный сайт。

Читайте также:  Все для программирования под андроид

Атрибуты инструментов можно условно разделить на три категории: 1. Атрибуты обработки ошибок, которые будут влиять на запросы Lint, 2. Атрибуты сокращения ресурсов, которые влияют на сжатие ресурсов, 3. Просмотр атрибутов во время разработки редактора макета.

1 Свойства обработки ошибок

Любой элемент может использовать этот атрибут, например, строковый элемент в strings.xml, мы можем игнорировать неправильный атрибут MissingTranslation:

В другом примере для элемента ImageView в следующем коде, если мы не добавим атрибут tools: ignore, Lint предложит, чтобы в ImageView отсутствовал атрибут android: contentDescription, а tools: ignore = «contentDescription» может игнорировать это предупреждение:

Любой элемент может использовать этот атрибут, это и аннотации в коде Java@TargetApiЭто то же самое: оно определяет уровень API, поддерживаемый текущим элементом, а значение атрибута может быть числом или кодовым именем.
В этом случае, даже если указано minSdkVersion Если текущий элемент не поддерживается, Lint не будет предупреждать. Такие как набор minSdkVersion=12 , Но использовать GridLayout Если вам нужно добавить tools:targetApi=»14″ :

Только тег ресурсов может использовать этот атрибут. Язык и регион ресурсов по умолчанию — английский, и будет выполнена проверка правописания. Этот атрибут указывает язык и регион ресурсов. Конечно, значение атрибута должно быть допустимым.locale qualifier。

Например, вы можете указать values/strings.xml Язык файла по умолчанию — испанский вместо английского:

2 Режим сжатия ресурсов

Когда используешьresource shrinkingПри следующих атрибутах указываются некоторые характеристики сжатия ресурсов.

Чтобы использовать сжатие ресурсов, пожалуйста, build.gradle файл shrinkResources Приписывать true ,( minifyEnabled Атрибут сокращает код):

Подходящее: , Укажите, использовать ли безопасный режим или строгий режим при сборке. В безопасном режиме резервируются все ресурсы, на которые имеются прямые ссылки, и ресурсы, которые могут использоваться динамически, такие какResources.getIdentifier()Ресурс, вызываемый методом. Строгий режим сохраняет только ресурсы с прямой ссылкой.

Режим безопасности по умолчанию shrinkMode=»safe» , Если вы хотите использовать строгий режим, вы можете использовать следующий код:

Если включен строгий режим, вы можете настроить ресурсы для сохранения. Если вы хотите сохранить или отменить определенные ресурсы, создайте файл XML, содержащий тег в вашем проекте, и укажите каждый из них в инструментах: атрибут keep Ресурсы, которые должны быть зарезервированы, укажите каждый ресурс, который нужно удалить, в атрибуте tools: discard. Оба эти атрибута принимают разделенный запятыми список имен ресурсов. Вы можете использовать символ звездочки в качестве подстановочного знака. Например:

Сохраните файл в ресурсах проекта, например, в res / raw / keep.xml. Сборка не упаковывает файл в APK.
Для получения дополнительной информации, пожалуйста, смотрите:Shrink your resources。

Подходящее: метка. Этот атрибут может резервировать определенные ресурсы, такие какResources.getIdentifier()) Динамически используемые ресурсы. Использование может быть создано res/raw/keep.xml Содержание файла выглядит следующим образом:

Подходящее: метка. На некоторые ресурсы можно ссылаться, но они не влияют на приложение. Эти ресурсы нельзя удалить напрямую, тогда это свойство может удалить эти ресурсы, или плагин Gradle неверно определит, что на эти ресурсы ссылаются, тогда это свойство также можно использовать. Использование заключается в следующем:

3 Просмотр свойств макета редактора времени разработки

  • инструменты: заменить андроид:

Инструменты могут охватывать все атрибуты Android. Я считаю, что это тот, который все использовали больше всего, поэтому я не буду об этом говорить.

Android studio2.2 добавил этот атрибут, чтобы указать тип макета тега слияния, например:

Только корневой вид может использовать этот атрибут. Он определяет, с каким действием текущий макет связан с текущим макетом по умолчанию, так что макет может получить некоторую информацию об этом действии, такую ​​как тема, используемая действием, и т. Д., А также при использовании быстрого исправления (сочетание клавиш на компьютере Mac + enter) При добавлении события onClick в дочерний View соответствующий код метода будет вставлен в Activity.

Читайте также:  Звонок как у айфона для андроид

Только RecyclerView может использовать это свойство. Моя версия Android Studio 3.0.1, количество отображаемых RecyclerView по умолчанию в редакторе макетов равно 10. Этот атрибут может изменить количество отображений RecyclerView.

Только атрибут фрагмента может использовать этот атрибут, и стиль макета можно предварительно просмотреть в окне предварительного просмотра.

  • tools:listitem / tools:listheader / tools:listfooter

Только AdapterView может использовать это свойство, которое определяет расположение элементов, верхний и нижний колонтитулы списка, но также можно использовать свойство tools: listitem RecyclerView:

Применимый объект: быть Любой корневой вид ссылается:

Применимый объект: корень , Сообщите IDE, какое меню использовать в окне предварительного просмотра, и это меню будет отображаться в корневом узле макета (положение панели действий).

Окно предварительного просмотра очень умное. Если макет связан с действием (заданным с помощью tools: context), он автоматически запросит метод onCreateOptionsMenu этого действия, чтобы отобразить меню, и свойство tools: menu может переопределить это поведение по умолчанию.

Значением атрибута является идентификатор меню, и их может быть больше 1. Различные идентификаторы меню разделяются запятыми.

Следует отметить, что когда тема является Theme.AppCompat, это свойство не работает.

Укажите режим отображения панели действий, его значение может быть: 1. стандартное, 2. вкладки, 3. список

Точно так же, когда тема — Theme.AppCompat (r21 +, как минимум) или Theme.Material, или макет включает в себя панель инструментов. Этот атрибут тоже не работает, работает только голографическая тема.ссылка

  • tools:minValue / tools:maxValue

Подходящее: NumberPicker , Предварительный просмотр максимальных и минимальных значений NumberPicker, но не вступать в силу. MaxValue и minValue NumberPicker могут быть установлены только по коду, если вы хотите установить его с помощью xml, вам нужно найти другой способ, здесьссылка, Почему xml из android studio не поддерживает установку этих двух атрибутов? Я не понимаю, пожалуйста, оставьте сообщение, чтобы сообщить мне.

Подходящее: , Позвольте DrawerLayout открыть направление.

Constant Value Description
end 800005 Push object to the end of its container, not changing its size.
left 3 Push object to the left of its container, not changing its size.
right 5 Push object to the right of its container, not changing its size.
start 800003 Push object to the beginning of its container, not changing its size.
  • «@tools:sample/*» resources

Применимые объекты: все представления, поддерживающие текст и изображения. Этот атрибут эквивалентен добавлению заполнителя в представление, например:

В следующей таблице описаны все заполнители, которые можно использовать для просмотра:

Attribute value Description of placeholder data
@tools:sample/full_names Full names that are randomly generated from the combination of @tools:sample/first_names and @tools:sample/last_names.
@tools:sample/first_names Common first names.
@tools:sample/last_names Common last names.
@tools:sample/cities Names of cities from across the world.
@tools:sample/us_zipcodes Randomly generated US zipcodes.
@tools:sample/us_phones Randomly generated phone numbers with the following format: (800) 555-xxxx.
@tools:sample/lorem/random Placeholder text that is derived from Latin.
@tools:sample/date/day_of_week Randomized dates and times for the specified format.
@tools:sample/date/ddmmyy То же, что и выше
@tools:sample/date/mmddyy То же, что и выше
@tools:sample/date/hhmm То же, что и выше
@tools:sample/date/hhmmss То же, что и выше
@tools:sample/avatars Vector drawables that you can use as profile avatars.
@tools:sample/backgrounds/scenic Images that you can use as backgrounds.

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

Вот два примера.

Например, следующий код определяет RecyclerView, его tools:listitem=»@layout/item_part1″ :

Источник

Оцените статью