Настройка фона Android и панель меню постоянства - Использование атрибута в более старых версиях вызывает сбой - Существует ли подход с использованием темы / шаблона?

В Android 3.0 понятие «проверено» может быть отображено с использованием «активированного» фона. Это дает вам постоянную панель, которую вы видите, когда вы нажимаете на фрагмент списка, обеспечивая контекст для фрагмента справа от списка (например, нажатие на папку в Gmail выделяет эту папку и открывает другой фрагмент списка, чтобы показать разговоры в этой папке

Например, образцы фрагментов показывают такие вещи, как:

setListAdapter(new ArrayAdapter<String>(getActivity(),
                    android.R.layout.simple_list_item_activated_1, Shakespeare.TITLES));

Этот ресурс ( android.R.layout.simple_list_item_activated_1 ) является новым для Android 3.0. Что делает его «активированным»:

android:background="?android:attr/activatedBackgroundIndicator"

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

Я могу добиться этого, имея две отдельные версии макета, одну в наборе ресурсов -v11 , одну в наборе обычных ресурсов. Это немного менее СУХОЙ, чем мне бы хотелось, поскольку основная часть макета такая же, только один атрибут либо включен, либо пропущен.

Я попытался использовать псевдонимы ресурсов с возможностью рисования. , поэтому android: background может ссылаться на псевдоним, а псевдоним будет обрабатывать дифференциацию -v11 , но чертежам не нравится android: src = "@ null" .

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

Кто-нибудь разработал шаблон для использования «активированного» в версии 3.0 и пропуска его в предварительной версии. -3.0, за пределами отдельных макетов?

Спасибо!

74
задан Michael Durrant 28 September 2011 в 14:51
поделиться