使用当前主题中引用的资源
使用当前主题中引用的资源
我发现自己再次尝试在我的Android应用程序中使用当前主题中的资源,并遇到了困难。
遵循此处找到的主题属性值重用的粗略指南
我最初尝试创建一个选择器,如下所示:
其中按下状态的drawable如下声明:
- @android:drawable/item_background
在当前的ICS主题xml文档中themes xml doc 中编译时没有问题(如果我拼写错误,它会给出错误,或者直接引用@android:drawable/item_background会告诉我drawable本身是私有的)。
当我运行应用程序时,我会得到一个
FATAL EXCEPTION: main E / AndroidRuntime (18815): android.view.InflateException: Binary XML file line #14: Error inflating class
除了使用此选择器的xml文件以及ImageViews android:background
属性值之外,没有其他有用的信息。我知道存在一个bug,即无法将colorStateLists用作背景如此所述,也许这也适用于引用主题中的drawable的drawableState列表。然而,我知道它确实可以工作,因为所提到的帖子中有描述。
我在这里漏掉了什么吗?每当我尝试做这种事情时,我总是遇到一些我不理解的东西,所以对任何指点感到高兴。
感谢任何帮助
编辑
作为另一个实验,我尝试在主题中为引用的drawable设置一个别名,如下所示
并直接将其用作背景,但这也不起作用。查看别名时,它们只能引用实际图像,所以这是有道理的
编辑2
另一个测试,我已经发现直接使用它
android:background="?android:attr/selectableItemBackground"
实际上是起作用的。所以似乎在别名或选择器中使用它时才会出现问题。奇怪的是,我会认为背景和相同的参数都是一样的
编辑3
看起来我指向的主题属性实际上是一个选择器,这肯定对问题没有帮助!我想我应该在看到它的名称时就会猜到