В 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
, а другую в обычном наборе ресурсов. Однако это немного менее DRY, чем мне бы хотелось, поскольку основная часть макета такая же, только этот один атрибут либо включен, либо пропущен.
Я попытался использовать псевдонимы ресурсов для рисования, поэтому android:background
мог ссылаться на псевдоним, а псевдоним мог обрабатывать дифференциацию -v11
, но <bitmap>
drawables, похоже, не любит android:src="@null"
.
Я подозреваю, что к этой проблеме существует подход со стилями и темами, но, поскольку я никогда полностью не задумывался об этом (один из моих самых смущающих пробелов в знаниях Android), я не совсем уверен, что делать.
Кто-нибудь разработал шаблон для использования «активированного» в версии 3.0 и пропуска его в версиях до 3.0, помимо отдельных макетов?
Спасибо!
<include>
здесь не поможет - мне нужен фон для корневого элемента макета строки. разные версии темы, безусловно, возможны, но именно поэтому я задаю вопрос. :-) - person CommonsWare   schedule 11.03.2011@android:color/transparent
? - person Roman Nurik   schedule 11.03.2011@null
? Это может сработать. Навскидку, я бы подумал, что стили, похожие на контуры Эла, были бы более правильными с точки зрения верности видению Android — вы согласны? В конце концов, этот вопрос не столько обо мне, сколько о том, что я рассказываю своим читателям, поэтому я хочу пойти по пути, который Google хотел бы использовать для разработчиков Android. - person CommonsWare   schedule 11.03.2011@null
:-) - person Roman Nurik   schedule 11.03.2011