gpt4 book ai didi

android - 设置 Android 背景和持久性菜单栏 - 在旧版本上使用属性会导致崩溃 - 是否有主题/模式方法?

转载 作者:IT老高 更新时间:2023-10-28 13:12:13 37 4
gpt4 key购买 nike

在 Android 3.0 中,“已选中”的概念可以使用“激活”背景呈现。这为您提供了当您点击列表 fragment 时看到的持久栏,为列表右侧的 fragment 提供上下文(例如,点击 Gmail 中的文件夹会突出显示该文件夹并打开另一个列表 fragment 以显示该文件夹中的对话)。

例如, fragment 示例显示如下内容:

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/landscape 组合的这个神奇值,否则跳过它。

我可以通过拥有两个不同版本的布局来实现这一点,一个在 -v11 中。资源集,常规资源集中的一个。不过,这比我想要的要少一点 DRY,因为大部分布局是相同的,只有一个属性被包含或被跳过。

我尝试使用可绘制资源别名,所以 android:background可以引用别名,别名将处理 -v11差异化,但 <bitmap>绘图似乎不喜欢 android:src="@null" .

我怀疑有一个样式和主题的方法来解决这个问题,但由于我从来没有完全理解这些(我更尴尬的 Android 知识空白之一),我不完全确定该怎么做。

除了单独的布局之外,有没有人制定了在 3.0 上使用“激活”并在 3.0 之前跳过它的模式?

谢谢!

最佳答案

风格是你的 friend ....

有两个values目录,一个是values-v11,一个是默认值。

每个值目录都包含一个styles.xml,不同之处在于其中包含一个默认值;

<style name="listViewActivatedStyle"/>

values-v11 包含;

<style name="listViewActivatedStyle">
<item name="android:background">?android:attr/activatedBackgroundIndicator</item>
</style>

然后你可以有一个使用的单一布局;

style="@style/listViewActivatedStyle"

然后选择合适的。

关于android - 设置 Android 背景和持久性菜单栏 - 在旧版本上使用属性会导致崩溃 - 是否有主题/模式方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5274982/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com