java - 在 APi7 中使用内置 android attr?

标签 java android

如何在 API 7 中使用 ?android:attr/ xml 元素? 对于 API 15,它按预期工作,但较旧的会抛出错误。

<TextView
    ...
        android:paddingLeft="?android:attr/listPreferredItemPaddingLeft"
        android:paddingRight="?android:attr/listPreferredItemPaddingRight"
        android:minHeight="?android:attr/l  istPreferredItemHeightSmall" />

最佳答案

如果您的目标是最低 API 级别 7,但依赖于 API 15 的支持,那么在很多情况下这是行不通的。

话虽如此,有些属性可以在较低和较高的 API 之间很好地转换,但许多属性依赖于相应的 API 支持,因此您必须对此进行测试。

我的方法是选择最低的 API,但使用较高的 API 进行构建,并包含较低 API 的支持包,从而提供一些更高级别的支持(例如 fragment )

要查看是否会遇到任何问题,您可以在 list 中将最小 API 设置为 7,并在项目 android 属性中添加 API 15。

然后使用 API 7 构建并部署到模拟器,如果效果很好,如果效果不好,您将需要找到一种不同的方法来完成您想要完成的任务以支持两个平台。

您还可以为不同的 API 级别创建不同的布局,您还可以在运行时检查类/方法是否受支持,然后再使用它,但这会给您的代码增加很多开销。

这需要小心,因为它很容易包含,并且 API 无法在您选择支持的最低级别上工作,但会错过在模拟器测试中进行锻炼的机会。

当我觉得必须这样做时,我的方法是使用最低的 API 级别(项目中的 API 属性)进行编译,并确保所有此类情况都通过版本控制布局在代码中已知和处理,或者被理解并具有已行使

然后切换回更高的 API,您必须遵守纪律才能执行此操作,否则可能会在版本中面临崩溃的风险,老实说,这通常不值得付出努力,因为您几乎总能找到 x-api 解决方案,但每种情况都是如此不同的。

关于java - 在 APi7 中使用内置 android attr?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10674695/

相关文章:

Java keylistener 不执行任何操作,但程序仍然运行

java - 如何在 Glide 中向 GenericRequestBuilder 添加交叉淡入淡出动画

java - 使用 Jacob 桥 (COM/ActiveX) 传递枚举值

java - Hibernate 4.x MYSQL Multi-Tenancy ID 生成问题

android - Arduino安卓蓝牙通讯

Android Google Map V2 身份验证问题

android - Calabash 使用 Paypal 进行自动化测试

java - 组织小型公用事业功能

android - AccountManager - authToken 已设置但 peekAuthToken 返回 null

javascript - Phonegap 2.0.0 keyup 事件