当前位置: 首页 > 知识库问答 >
问题:

使用API级别的属性(超过minSdkVersion)

丌官嘉福
2023-03-14

我是Android开发的新手,我想知道如果在XML标签上使用API级别高于Minsdk版本的属性会发生什么。

例如:

<uses-sdk
    android:minSdkVersion="9"
    android:targetSdkVersion="20" />

然后用这个:

<activity android:logo="@drawable/iconwhatever"></activity>

"android: logo"属性来自API级别11。

在Android Studio中,它给出了以下错误,但我想知道如果不考虑这个问题,会发生什么:

Attribute "logo" is only used in API level 11 and higher. (Current min is 9)

关于这方面的任何帮助都将不胜感激。

共有3个答案

秦景福
2023-03-14

在这种情况下,必须通过代码而不是XML对不同API的属性进行操作。

在代码中,你可以处理它。

例如:

 if(Build.Version.SDK_INT > 10){

     .... use an attribute

   }
else{

    .... use other
}

对于您的具体情况,使用"图标"

<activity android:icon="@drawable/iconwhatever"></activity>
程昕
2023-03-14

对于XML属性,使用来自较新API的属性是安全的(它们将被忽略,因为XML解析器甚至不会在较旧版本上查找它们)。

汪耀
2023-03-14

不受支持的属性会被安全地忽略。

从SDK留档:

在解析XML资源时,Android会忽略当前设备不支持的XML属性。因此,您可以安全地使用仅由较新版本支持的XML属性,而不用担心较旧版本在遇到该代码时会中断。

 类似资料:
  • 问题内容: 我在使用Python super()和继承和属性时遇到了一个非常奇怪的问题。一,代码: 这很好。但是,我想要的(对我来说似乎是Pythonic) 即使不起作用 得到很好的价值。在这种情况下,x是同时定义了fset和fget的超类的属性。那为什么不起作用呢? 问题答案: 我试图找到正确的语言来支持这种行为的原由,以免给您一个“因为它就是”答案……但是似乎这个问题已经被问了不止一次了,并且

  • 由于某些原因,原来的Aviary框架已经停止工作,这迫使我迁移代码,转而使用新的CreativeSDK。不幸的是,这个新的SDK的MINSDK版本是14=Android4.0,但我们的许多客户仍然使用旧版本(根据Googles对我们应用程序的统计,这一比例略高于20%)。 我们不能发布一个减少那么多用户的应用程序更新,但有没有一种方法可以用较低的api级别编译应用程序,然后为“旧api”用户禁用图

  • 本文向大家介绍超链接的禁用属性Disabled使用示例,包括了超链接的禁用属性Disabled使用示例的使用技巧和注意事项,需要的朋友参考一下 可以设置超链接的Disabled属性的true 和 false来确定超链接是不是能点击 例如: 上面的意思是不想让bai du的超链生效,但在click不做任何约束和判断的话,但点击bai du的时候自然就会跳转到百度页面,这就是html中超链接禁用属性的

  • 问题内容: 我有这样的实体: 还有一个: 使用Criteria API,我想获得带有过滤的Picturs集的唯一AlbumD。我尝试这样的事情: 在这里,我得到了带有所有关联图片的相册。它们根本没有被过滤。当我尝试执行记录器打印的查询时,只有给定eventId的图片数量只有四行,但是在“相册”中,我获取了所有图片。 我也尝试了其他ResultTransformers,但最终得到了很多结果(4),但

  • 我有以下课程 < li >抽象类duck 此类具有< code>flyBehavoir类型的< code>FlyBehavoir 函数,以执行flying < code > preformFly() < br >函数来设置< code > flyBehavoir < code > setFlyBrhavoir(flyBehavoir$flyBehavoir) < li >类DonaldDuck扩展

  • 由于log4j的官方文档是一个断开的链接,而且入门指南对我没有帮助,所以我想知道如何使用文件而不是文件为同一个记录器使用两个具有不同日志级别的追加器。 例如,像这样: