Использовать встроенный Android-атрибут в APi7?

1

Как я могу использовать элементы ?android:attr/ xml с API 7? Для API 15 он работает так, как ожидалось, но старшие бросают ошибки.

<TextView
    ...
        android:paddingLeft="?android:attr/listPreferredItemPaddingLeft"
        android:paddingRight="?android:attr/listPreferredItemPaddingRight"
        android:minHeight="?android:attr/l  istPreferredItemHeightSmall" />
Теги:

2 ответа

0
Лучший ответ

Если вы используете минимальный уровень API 7, но в зависимости от поддержки API 15, который не будет работать во многих случаях.

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

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

Чтобы увидеть, столкнулись ли вы с любыми проблемами, вы должны установить минимальный API в 7 в манифесте и добавить API 15 в свои свойства android.

Затем создавайте и развертывайте эмулятор с помощью API 7, если он отлично работает, если нет, вам нужно будет найти другой способ сделать то, что вы пытаетесь выполнить для поддержки обеих платформ.

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

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

Мой подход, когда я чувствую, что должен это сделать, состоит в том, чтобы скомпилировать с самым низким уровнем API (свойства API в проекте) и убедиться, что все такие случаи известны и обрабатываются в коде, версиями макетов, или понимаются и выполняются

Затем вернитесь к более высокому API, вы должны быть дисциплинированы, чтобы сделать это, или рискнуть сбоями в выпуске, честно говоря, это обычно не стоит усилий, потому что вы почти всегда можете найти работу x-api, но каждый случай отличается.

0

Я думаю, что они были представлены в ICS (14), поэтому вы не можете использовать их в предыдущей версии Android. Вы всегда можете посмотреть, какие значения (или ссылки) они указывают, а также использовать их непосредственно в ваших Views и предоставлять разные макеты для разных версий Android.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню