Как Android обрабатывает неизвестные теги XML?

Согласно Android Lint, некоторые атрибуты XML вызывают сбои на старых устройствах. Например, Attribute 'paddingStart' referenced here can result in a crash on some specific devices older than API 17

Означает ли это, что мне нужны отдельные XML-файлы для поддержки неизвестных тегов (например, тот же макет с атрибутом paddingStart, добавленным в каталог ресурсов layout-v17)?

Мне не нравится идея иметь дополнительный, почти идентичный файл, так как это чревато ошибками при обновлении кода. Будут ли некоторые устройства действительно аварийно завершать работу? Я бы подумал, что неизвестные теги будут просто игнорироваться.


person Daiwik Daarun    schedule 13.04.2015    source источник
comment
Вместо этого вы можете использовать старые теги, такие как marginLeft.   -  person jyoonPro    schedule 13.04.2015
comment
Обычно проще использовать старые обратно совместимые теги/атрибуты, если вы поддерживаете старые устройства, поскольку обратная совместимость не должна нарушать функциональность на новых устройствах. Если обратная совместимость неудовлетворительна и вам по-прежнему необходимо поддерживать более старые устройства, то вам необходимо иметь отдельные файлы или логику для учета этих различий API.   -  person Ryan J    schedule 13.04.2015
comment
Либо вы ограничиваете свое приложение более высоким API из манифеста, либо воздерживаетесь от использования таких атрибутов, вот мой совет.   -  person Avrham Aton    schedule 13.04.2015


Ответы (1)


Насколько мне известно, вы должны иметь возможность использовать как paddingLeft, так и paddingStart без каких-либо ошибок. Такие атрибуты, как paddingStart, используются для настройки раскладки слева направо или, в некоторых странах, раскладки справа налево, в этом случае «начало» будет в правой части экрана.

Итак, подводя итог, используйте paddingLeft, paddingRight, paddingTop и paddingBottom.

person Farbod Salamat-Zadeh    schedule 13.04.2015