2

我开发了一个可用于不同尺寸的 appwidget。由于可以在 Android 4.2 上调整应用程序的大小,因此我不想在这些设备上过度填充小部件列表。但对于使用较旧 Android 版本的客户,我想提供一些不同尺寸的小部件。是否有条件xml标签或类似的可能性来检查清单中的Android版本,然后在旧版本的情况下添加更多尺寸?

提前感谢您的任何想法。

4

1 回答 1

1

是的。receiver您为每个小部件创建的清单中的标签具有一个android:enabled属性,它可以从资源文件中获取该布尔值。

因此,您可以将小部件的接收器编写为(重要的一行是android:enabled):

<receiver
    android:name=".YourAppWidgetProvider"
    android:enabled="@bool/your_appwidget_enabled"
    android:label="@string/your_appwidget_label" >
    <intent-filter>
        <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
    </intent-filter>

    <meta-data
        android:name="android.appwidget.provider"
        android:resource="@xml/your_appwidget_info" />
</receiver>

bools.xml然后在您的文件夹中创建一个res/values

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <bool name="your_appwidget_enabled">false</bool>
</resources>

另一个bools.xml在您的res/values-v11文件夹中:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <bool name="your_appwidget_enabled">true</bool>
</resources>

这意味着 YourAppWidgetProvider(以及 中描述的小部件your_appwidget_info)只会出现在 v11+ 设备上。您可以使用相同的方法根据您想要的任何 Android 版本禁用/启用任意数量的小部件。

于 2013-04-01T15:56:11.653 回答