最佳答案
在 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/large/scape 组合的这个神奇值,否则跳过它。
我可以通过使用两个独立版本的布局来实现这一点,一个在 -v11
资源集中,一个在常规资源集中。不过,这比我希望的要少一些 DRY,因为布局的大部分是相同的,只有这一个属性被包含或者被跳过。
我尝试使用可绘制的资源别名,这样 android:background
可以引用别名,别名可以处理 -v11
区分,但是 <bitmap>
可绘制的资源似乎不喜欢 android:src="@null"
。
我怀疑有一个风格和主题的方法来解决这个问题,但是因为我从来没有完全理解过这些(我的 Android 知识空白之一) ,我不完全确定该怎么做。
有没有人想出一个模式,在3.0版本中使用“激活”,而在3.0版本之前跳过它,超越单独的布局?
谢谢!