3

以下に示すように、AppWidgetのXMLファイルを作成しました。

xml / appwidget_4x1.xml

<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
    android:minWidth="@dimen/AppWidget_4Cell"
    android:minHeight="@dimen/AppWidget_1Cell"
    android:updatePeriodMillis="0"
    android:previewImage="@drawable/appwidget_4x1_preview"
    android:initialLayout="@layout/appwidget_4x1_loading"
    android:resizeMode="horizontal"
    android:minResizeWidth="@dimen/AppWidget_3Cell" />

問題はAndroid1.6にあり、minWidthとminHeightに@dimenステートメントを使用するのがどうやら気に入らないようです。これが発生し、ユーザーがAppWidgetを画面にドロップすると、「このホーム画面にこれ以上のスペースはありません」と表示されます。ディメンションを明示的に使用すると、再び機能し始めます。

res / values / dimens.xml(1.6-3.2)

<dimen name="AppWidget_1Cell">72dp</dimen>
<dimen name="AppWidget_4Cell">294dp</dimen>

res / values-v14 / dimens.xml(4.0+)

<dimen name="AppWidget_1Cell">40dp</dimen>
<dimen name="AppWidget_4Cell">250dp</dimen>

これはバグですか?もしそうなら、これの回避策は何ですか?このようにして、IceCreamSandwichの新しいウィジェットレイアウトの寸法に関する推奨事項に従いました。

4

1 に答える 1

3

私はそれを試してみましたが、Android 1.6でも発生します。簡単な解決策は、別のxmlフォルダーを作成することです(Android 1.6 用に 1 つ、その他のバージョン用に 1 つ)。したがって、次のようにすることができます。

xml-v4 (Android 1.6 の場合)、次元を数値として含む
xml-v5 (その他の場合)、次元を @dimen/.. として含む

または、次のようにすることもできます。

xml (Android 1.6 - 3.2 の場合)、数値として寸法を含む
xml-v14 (Android 4 の場合)、新しい寸法を含む

悪いのは、appwidget プロバイダーの xml ファイルを複製する必要があることですが、少なくとも機能します。

うーん..Android 1.6のサポートをやめようかと思っています....(現在は1.3%です...)。

乾杯、ユヴィ

http://www.droidahead.com

于 2011-12-25T16:53:52.127 に答える