在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>
可绘制对象似乎并不喜欢android:src="@null"
。
我怀疑有解决此问题的样式和主题的方法,但是由于我从未完全解决这些问题(这是我最尴尬的Android知识鸿沟之一),因此我不确定要怎么做。
有没有人想出一种模式,可以在3.0上使用“激活”,而在3.0之前的版本中可以跳过单独的布局呢?
谢谢!