2013-04-01 52 views
2

我開發了一個可用於不同尺寸的appwidget。 由於可以在Android 4.2上調整應用程序的大小,因此我不想在這些設備上過度填充widgetlist。但對於Android版本較老的客戶,我想提供一些不同尺寸的小部件。 是否有一個條件xml標籤或類似的可能性來檢查清單中的Android版本,然後在舊版本的情況下添加更多的尺寸?適用於不同Android版本的小部件

在此先感謝您的任何想法。

回答

1

是的。您爲每個窗口小部件創建的Manifest中的receiver標記具有android:enabled屬性,它可以從資源文件獲取該布爾值。

因此,你可以寫你的widget的接收器(重要的線是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> 

,然後在res/values文件夾中創建一個bools.xml

<?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版本禁用/啓用任意數量的小部件。

+0

正是我在尋找什麼。謝謝 – schtiefel

相關問題