2015-04-13 1 views
2

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

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

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

+0

Вместо этого вы можете использовать старые теги, такие как marginLeft. – jyoon

+0

Как правило, проще использовать старые теги/атрибуты, совместимые с предыдущими версиями, если вы поддерживаете старые устройства, поскольку обратная совместимость не должна нарушать функциональность на новых устройствах. Если обратная совместимость не является удовлетворительной, и вам все равно нужно поддерживать более старые устройства, тогда вам нужно иметь отдельные файлы или логику для учета этих различий api. –

+0

Либо вы ограничиваете свое приложение высшим apis из манифеста, либо воздерживаетесь от использования таких атрибутов, это мой совет. –

ответ

-2

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

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