我是Android开发的新手,我想知道如果你在API级别大于minSdkVersion的XML标签上使用属性会发生什么。
例如:
<uses-sdk
android:minSdkVersion="9"
android:targetSdkVersion="20" />
然后用这个:
<activity android:logo="@drawable/iconwhatever"></activity>
&#34; android:logo&#34;属性来自API级别11.
在Android Studio中,它会出现以下错误,但我想知道如果不考虑会发生什么:
Attribute "logo" is only used in API level 11 and higher. (Current min is 9)
对此有任何帮助将不胜感激。
答案 0 :(得分:45)
安全地忽略不受支持的属性。
来自SDK documentation:
解析XML资源时,Android会忽略当前设备不支持的XML属性。因此,您可以安全地使用仅受较新版本支持的XML属性,而不必担心旧版本在遇到该代码时会破坏。
答案 1 :(得分:2)
对于XML属性,可以安全地使用来自较新API的属性(因为XML解析器甚至无法在旧版本中查找它们,所以它们将被忽略)。
答案 2 :(得分:0)
在这种情况下,必须通过代码而不是XML来操纵不同API的属性。
在代码中,您可以对其进行处理。
例如:
if(Build.Version.SDK_INT > 10){
.... use an attribute
}
else{
.... use other
}
针对您的具体情况,请使用&#34; icon&#34;
<activity android:icon="@drawable/iconwhatever"></activity>