select器,层列表和形状/位图在相同的XML

我在drawable文件夹内的xml中有这样的代码:

 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true"> <layer-list> <item> <shape android:shape="rectangle"> <size android:width="90dp" android:height="90dp" /> <solid android:color="#9933CC" /> </shape> </item> <item> <bitmap android:gravity="center" android:src="@drawable/main_achievements_synthesis" /> </item> </layer-list> </item> <item> <layer-list> <item> <shape android:shape="rectangle"> <size android:width="90dp" android:height="90dp" /> <solid android:color="#AA66CC" /> </shape> </item> <item> <bitmap android:gravity="center" android:src="@drawable/main_achievements_synthesis" /> </item> </layer-list> </item> </selector> 

我使用它有一个图像与2个状态(作为一个button使用)。 一切正常仿真器和设备上的预期。

我知道我可以创build不同的可绘制的XML,并作出参考达到相同的结果。

我刚刚切换到Android Studio,它向我显示了这个消息: Element XXX is not allowed here 。 它警告我关于层列表和它里面的所有标签。 不过,正如我所说的,这段代码工作得很好。

我应该把我的代码切换到分离的XML(知道我只会使用它们一次),或者是Android Studio Inspector Code中的“错误”?

注:我认为我的代码可以优化,但我还没有想出如何。

Solutions Collecting From Web of "select器,层列表和形状/位图在相同的XML"

这是Android Studio的linting工具中的错误。 请在https://code.google.com/p/android/issues/list上提交错误&#x3002;

另外,您可以使用以下方法进行优化:

 <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <selector> <item android:state_pressed="true"> <shape android:shape="rectangle"> <size android:width="90dp" android:height="90dp" /> <solid android:color="#9933CC" /> </shape> </item> <item> <shape android:shape="rectangle"> <size android:width="90dp" android:height="90dp" /> <solid android:color="#AA66CC" /> </shape> </item> </selector> </item> <item> <bitmap android:gravity="center" android:src="@drawable/main_achievements_synthesis" /> </item> </layer-list>